Les Erreurs de manipulation de HttpWebRequest.GetResponse

Je vais avoir un ridicule de temps à essayer d'obtenir une API SMS de travail (ZeepMobile, si vous êtes intéressé).NET... j'ai été autour de .NET pour quelques années, mais avec tous ces réseaux sociaux et de l'API truc, j'ai besoin d'entrer dans les HttpWebRequest un peu. Je suis nouveau à cela, mais pas tout à fait nouvelle; j'ai pu brancher mon site de Twitter, sans trop de chichi (c'est à dire, j'ai été en mesure de modifier quelqu'un du code du travail pour moi).

De toute façon, le chemin de leur API travaille est d'envoyer un SMS, envoyer un message et ils répondre de nouveau à vous. Je peux vous l'envoyer, mais à chaque fois que je le fais, plutôt que de renvoyer quelque chose d'utile pour comprendre quelle est l'erreur, j'obtiens le Jaune de la Page d'Erreur De Mort (YEPOD) de dire quelque chose à l'effet de "Le serveur distant a retourné une erreur: (400) Bad Request." Cela se produit sur ma ligne:

'...creation of httpwebrequest here...'
Dim myWebResponse As WebResponse
myWebResponse = request.GetResponse() '<--- error line

Est-il possible de simplement recevoir le message d'erreur du serveur, plutôt que d'avoir le serveur web renvoie une exception et me donner le YEPOD?

Ou, mieux encore, quelqu'un peut-il poster un exemple de travail de leurs Zeep code? 🙂

Merci!

EDIT: Voici mon tout bloc de code:

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, il est un moyen pour simplement voir ce que les en-têtes sont à la fois envoyer et recevoir? je suis en train d'utiliser le violoneux, mais soit je ne sais pas comment l'utiliser ou c'est juste complètement inutile...
Veuillez fournir votre code de la demande
ps - pour ceux qui veulent obtenir votre zeep code du travail, le code ci-dessus sera de retour à 400 Bad Request: "heure du Message diffère beaucoup de l'horloge du serveur ou de la Date de l'en-tête n'a pas été fourni." Je travaille encore sur ce que, puisque vous ne pouvez pas modifier la "Date" de l'en-tête...

OriginalL'auteur Jason | 2009-07-16