5

RestSharpに変換しようとしているこのコードがあります。わかりやすくするために、使用ブロックを削除して要約しました。

using System.IO;
using System.Net;
using RestSharp;

string GetResponse(string url,string data)
{
    var request = (HttpWebRequest)WebRequest.Create(url);
    request.Method = "POST";
    request.ContentType = "application/x-www-form-urlencoded";
    var bytes = Encoding.UTF8.GetBytes(data);
    request.ContentLength = bytes.Length;
    request.GetRequestStream().Write(bytes, 0, bytes.Length);
    var response = (HttpWebResponse)request.GetResponse();
    var stream = response.GetResponseStream();
    if (stream == null) return string.Empty;
    var reader = new StreamReader(stream);
    return reader.ReadToEnd();
}

私は次の順序で何かを試しました:

string GetResponse(string url, string data)
{
    var client = new RestClient(url);
    var request = new RestRequest("", RestSharp.Method.POST);
    request.AddParameter("application/x-www-form-urlencoded", data);
    var response = client.Execute(request);
    return response.Content;
}

RestSharpを使用してリクエストをPOSTできないようですが、POSTリクエストを送信するための正しい形式は何application/x-form-urlencodedですか?

4

1 に答える 1

6

したがって、パラメータはすべてデータ文字列ですでにシリアル化されていることがわかります。それらをRestSharpリクエストに手動で追加する必要がありました。

foreach (var pair in data) 
{ 
    request.AddParameter(pair.Key, pair.Value); 
}

ここで、データはキー/値ペア構造体です

于 2013-05-01T16:26:33.933 に答える