Я нелепо пытаюсь заставить работать SMS API ( ZeepMobile , если вам интересно) с .NET ... Я работаю в .NET уже несколько лет, но со всеми этими социальными сетями и API, мне нужно немного войти в HttpWebRequest. Я новичок в этом, но не совсем новый; Я смог подключить свой сайт к Твиттеру без особых хлопот (то есть я смог изменить чей-то код, чтобы он работал на меня).
В любом случае, их API работает так, чтобы отправлять SMS-сообщения, вы отправляете им сообщение POST, и они отвечают вам. Я могу отправить его просто отлично, но каждый раз, когда я делаю, вместо того, чтобы отсылать что-то полезное, чтобы выяснить, в чем заключается ошибка, я получаю «Желтую страницу ошибок» (YEPOD), которая говорит что-то вроде «Удаленный сервер возвратил ошибка: (400) Неверный запрос. " Это происходит на моей линии:
'...creation of httpwebrequest here...'
Dim myWebResponse As WebResponse
myWebResponse = request.GetResponse() '<--- error line
Есть ли способ просто получить ошибку с сервера, а не заставлять веб-сервер выдавать исключение и выдавать мне YEPOD?
Или еще лучше, кто-нибудь может опубликовать рабочий пример своего кода Zeep? :)
Спасибо!
РЕДАКТИРОВАТЬ: Вот весь мой блок кода:
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