0

こんにちは、私は Http Post リクエストを実行しようとしていますが、不正なリクエストのエラーが発生しています。

これがリクエストです

     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

これは、このリクエストの私のコードです

        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();
                }
            }

        }

エラー

受信者パラメーターに指定された値が見つからないか無効です。パラメータは任意の電話番号を参照する必要があります

4

2 に答える 2

0

ああ、潜在的な問題が見えます。フォームでエンコードされた値ではなく、JSON オブジェクトを送信しているようです。

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

それらの線に沿って何かを試してください。

于 2013-03-05T18:13:41.123 に答える