我有一个荒谬的时间试图让.NET API工作(ZeepMobile,如果你感兴趣)与.NET ...我已经围绕.NET几年,但所有这些社交网络和API的东西,我需要进入HttpWebRequest一点。我是新手,但不是全新的;我能够将我的网站连接到Twitter,而没有太多大惊小怪(即,我能够修改某人的代码为我工作)。从HttpWebRequest.GetResponse处理错误
无论如何,他们的API的工作方式是发送短信,你发送一个POST,他们回应给你。我可以发送它很好,但每次我做,而不是回应一些有用的东西来找出错误是什么,我得到了黄色错误页面(YEPOD)说了一些东西的效果“远程服务器返回错误:(400)错误的请求。“这发生在我的路线:
'...creation of httpwebrequest here...'
Dim myWebResponse As WebResponse
myWebResponse = request.GetResponse() '<--- error line
有没有办法简单地从服务器接收的错误,而不是具有Web服务器抛出一个异常并给我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
ps的,是有办法只查看一下头是发送和接收双方的?我试图使用提琴手,但要么我不知道如何使用它或它完全没有帮助... – Jason 2009-07-16 20:28:23
请提供您的请求代码 – cdm9002 2009-07-16 20:31:42
ps - 对于那些试图让您的zeep代码工作,上面的代码将返回400错误请求:“消息时间与服务器时钟差别很大或未提供日期标题。”仍然在努力,因为你不能修改“日期”标头... – Jason 2009-07-16 21:16:37