0

Webサイトにデータを投稿し、結果のjsonデータを表示しています。これは、msdnの例からいくつかの部分を取り出した後に完成した関数です。

        private string request(string url, string data)
        {
            byte[] byteArray;

            string postData,
                    responseFromServer;

            WebResponse response;

            Stream dataStream;

            StreamReader reader;

            HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
            request.Proxy = new WebProxy(ip, port);

            responseFromServer = string.Empty;
            request.Method = "POST";
            request.Timeout = 10000;

            postData = data;
            byteArray = Encoding.UTF8.GetBytes(postData);

            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = byteArray.Length;

            try
            {
                dataStream = request.GetRequestStream();
                dataStream.Write(byteArray, 0, byteArray.Length);
                dataStream.Close();

                response = request.GetResponse();
                dataStream = response.GetResponseStream();

                reader = new StreamReader(dataStream);

                responseFromServer = reader.ReadToEnd();

                reader.Close();
                dataStream.Close();
                response.Close();
            }
            catch (Exception x)
            {
                x.ToString();
            }


            return responseFromServer;
        }
    }

ip変数とport変数は、この関数が含まれるクラス内にあります。GetResponse()が呼び出されると、この例外になります。

{System.Net.WebException:リモートサーバーがエラーを返しました:(405)メソッドは許可されていません。

私はそれをテストしました、そしてそれはプロキシのためだけです、しかしパラメータは正しいです。この例外がスローされるのはなぜですか?

4

0 に答える 0