У меня время нелепо, пытаясь заставить работать API SMS (ZeepMobile, если вам интересно) с .NET... Я занимаюсь .NET в течение нескольких лет, но со всеми этими социальными сетями и материалами API мне нужно немного входить в HttpWebRequest. Я новичок в этом, но не совсем новый; Я смог подключить свой сайт к Twitter без лишней суеты (т.е. Мне удалось изменить код для работы для меня).
В любом случае, как работает их API, необходимо отправить SMS-сообщение, вы отправляете им POST, и они отвечают вам. Я могу отправить его просто отлично, но каждый раз, когда я делаю, вместо того, чтобы отсылать назад что-то полезное, чтобы выяснить, что такое ошибка, я получаю желтую страницу ошибки смерти (YEPOD), говорящую о том, что "Удаленный сервер вернул Ошибка: (400)" Плохой запрос". Это происходит на моей линии:
'...creation of httpwebrequest here...'
Dim myWebResponse As WebResponse
myWebResponse = request.GetResponse() '<--- error line
Есть ли способ просто получить сообщение об ошибке с сервера, вместо того, чтобы веб-сервер выдал исключение и дал мне YEPOD?
Или еще лучше, может ли кто-нибудь опубликовать рабочий пример своего кода Zeep?:)
Спасибо!
EDIT: Здесь весь мой блок кода:
Public Shared Function SendTextMessage(ByVal username As String, _
ByVal txt As String) As String
Dim content As String = "user_id=" + _
username + "&body=" + Current.Server.UrlEncode(txt)
Dim httpDate As String = DateTime.Now.ToString("r")
Dim canonicalString As String = API_KEY & httpDate & content
Dim encoding As New System.Text.UTF8Encoding
Dim hmacSha As New HMACSHA1(encoding.GetBytes(SECRET_ACCESS_KEY))
Dim hash() As Byte = hmacSha.ComputeHash(encoding.GetBytes(canonicalString))
Dim b64 As String = Convert.ToBase64String(hash)
'connect with zeep'
Dim request As HttpWebRequest = CType(WebRequest.Create(_
"https://api.zeepmobile.com/messaging/2008-07-14/send_message"), HttpWebRequest)
request.Method = "POST"
request.ServicePoint.Expect100Continue = False
' set the authorization levels'
request.Headers.Add("Authorization", "Zeep " & API_KEY & ":" & b64)
request.ContentType = "application/x-www-form-urlencoded"
request.ContentLength = content.Length
' set up and write to stream'
Dim reqStream As New StreamWriter(request.GetRequestStream())
reqStream.Write(content)
reqStream.Close()
Dim msg As String = ""
msg = reqStream.ToString
Dim myWebResponse As WebResponse
Dim myResponseStream As Stream
Dim myStreamReader As StreamReader
myWebResponse = request.GetResponse()
myResponseStream = myWebResponse.GetResponseStream()
myStreamReader = New StreamReader(myResponseStream)
msg = myStreamReader.ReadToEnd()
myStreamReader.Close()
myResponseStream.Close()
' Close the WebResponse'
myWebResponse.Close()
Return msg
End Function