2013-03-05 3 views
0

Salut, je suis en train de faire une demande Http Post mais obtenir une erreur de mauvaise demande Je pense que je fais quelque chose de mal dans la demande si quelqu'un peut m'aider.Http Post demande avec erreur Boundry Bad demande

C'est la demande

 POST /uapi/faxes/@me/0003*210 HTTP/1.1 
    HOST uapi.voipnow.com 
    Content-Length:469 
    Content-Type: multipart/form-data; boundary=------------325343636 
    ------------325343636-------- 
    Content-Disposition:form-data; name="files"; filename="/path/to/file/fax.txt" 
    Content-Type;application/octet-stream 

    This is my fax 
    ------------325343636 
    Content-Disposition:form-data; name="request"; 
    { 
     "recipients":["7778888"] 
    } 
    ------------3253436360 

Ceci est mon code pour cette demande

 try 
      { 
      String Token = "mytoken"; 
      ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(delegate { return true; }); 
      HttpWebRequest httpWReq2 = (HttpWebRequest)WebRequest.Create("https://domainname/uapi/faxes/@me/0014*100/?accessRequestToken=" + Token); 

      ASCIIEncoding encoding2 = new ASCIIEncoding(); 
      string postData2 = 
      "------------325343636" + Environment.NewLine + 
      "Content-Disposition:form-data; name=\"files\";filename=\"/path/to/file/fax.txt\";" + Environment.NewLine + 
      "Content-Type:application/octet-stream;" + Environment.NewLine + 
      "This is my fax" + Environment.NewLine + 
      "------------325343636" + Environment.NewLine + 
      "Content-Disposition:form-data; name=\"request\";" + Environment.NewLine + 
      "{" + Environment.NewLine + 
      "\"recipients\":[\"111111\"];" + Environment.NewLine + 
      "}" + Environment.NewLine + 
      "------------325343636"; 

      byte[] data2 = encoding2.GetBytes(postData2); 
      httpWReq2.Method = "POST"; 
      httpWReq2.ContentType = "multipart/form-data; boundary=------------325343636"; 
      httpWReq2.KeepAlive = true; 
      httpWReq2.UserAgent = "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17"; 
      httpWReq2.ContentLength =data2.Length; 
      httpWReq2.Host = "hostname"; 
      string result2 = ""; 

      Stream dataStream2 = httpWReq2.GetRequestStream(); 
      dataStream2.Write(data2, 0, data2.Length); 
      dataStream2.Close(); 
      WebResponse response2 = httpWReq2.GetResponse(); 
      HttpWebResponse responce3 = (HttpWebResponse)httpWReq2.GetResponse(); 
      dataStream2 = response2.GetResponseStream(); 
      // Open the stream using a StreamReader for easy access. 
      StreamReader reader2 = new StreamReader(dataStream2); 
      // Read the content. 
      string responseFromServer2 = reader2.ReadToEnd(); 
      } 

      catch (Exception ex) 
     { 
      WebException ex2 = (WebException)ex; 
      if (ex2.Status == WebExceptionStatus.ProtocolError) 
      { 
       WebResponse resp = ex2.Response; 
       using (Stream respstream = resp.GetResponseStream()) 
       { 
        StreamReader reader = new StreamReader(respstream); 
        String finalerror = reader.ReadToEnd(); 
       } 
      } 

     } 

Erreur

Valeur fournie dans recipie Le paramètre nts est manquant ou invalide. Le paramètre doit référencer n'importe quel numéro de téléphone

+0

sur quel serveur postez-vous? ceci est spécifique au vendeur. –

+0

@ DanielA.White ye monsieur, vous avez raison, c'est spécifique au vendeur. Je veux savoir ce qui ne va pas avec mes PostData dans ma demande. – Hiren

+0

@DiskJunky Je pensais que la longueur du contenu devrait être la même que la longueur des données, ai-je tort? – Hiren

Répondre

0

Oh, je vois un problème potentiel. Il semble que vous envoyez un objet JSON à la place d'une valeur codée en forme.

------------325343636 
Content-Disposition:form-data; name="request"; 
recipients=7778888 
------------3253436360 

Essayez quelque chose dans ce sens.

+0

Donc, à mon changement de code doit être "{" + Environment.NewLine + "destinataires: 111111" + Environment.NewLine + "}" + Environment.NewLine + je tente cela, mais encore obtenir l'erreur sam – Hiren

+0

@Hiren i besoin un exemple de demande de l'API –