1

POST引数を使用してAPIを呼び出す必要があります。次に例を示します。

XDocumentを見てきましたが、リクエストでパラメータを送信する方法がわかりません。また、非同期で呼び出す方法もわかりません。また、別のスレッドで実行する方がよいか、簡単であるかどうかもわかりません。

これは、WindowsベースのC#アプリケーションから呼び出します。

4

4 に答える 4

3

WebClientのUpload メソッドの1 つを使用できます。

WebClient client = new WebClient();
string response = client.UploadString(
                  "http://localhost/myAPI/?options=blue&type=car", 
                  "POST data");
于 2012-04-09T17:32:17.893 に答える
0

別のオプションをリングに投入するには、.NET 4.5のPostAsyncメソッドの使用を検討することをお勧めします。HttpClient確かにテストされていない刺し傷:

        HttpClient client = new HttpClient();
        var task = client.PostAsync(string.Format("{0}{1}", "http://localhost/myAPI", "?options=blue&type=car"), null);
        Car car = task.ContinueWith(
            t =>
            {
                return t.Result.Content.ReadAsAsync<Car>();
            }).Unwrap().Result;
于 2012-04-09T18:11:07.077 に答える
0

どこから電話?ジャバスクリプト?その場合は、JQuery を使用できます。

http://api.jquery.com/jQuery.post/

$.post('http://localhost/myAPI/', { options: "blue", type="car"}, function(data) {
  $('.result').html(data);
});

データには投稿の結果が含まれます。

サーバー側から HttpWebRequest を使用して、パラメーターを使用してそのストリームに書き込むことができます。

// Create a request using a URL that can receive a post. 
        WebRequest request = WebRequest.Create ("http://localhost/myAPI/");
        // Set the Method property of the request to POST.
        request.Method = "POST";
        // Create POST data and convert it to a byte array.
        string postData = "options=blue&type=car";
        byte[] byteArray = Encoding.UTF8.GetBytes (postData);
        // Set the ContentType property of the WebRequest.
        request.ContentType = "application/x-www-form-urlencoded";
        // Set the ContentLength property of the WebRequest.
        request.ContentLength = byteArray.Length;
        // Get the request stream.
        Stream dataStream = request.GetRequestStream ();
        // Write the data to the request stream.
        dataStream.Write (byteArray, 0, byteArray.Length);
        // Close the Stream object.
        dataStream.Close ();
        // Get the response.
        WebResponse response = request.GetResponse ();
        // Display the status.
        Console.WriteLine (((HttpWebResponse)response).StatusDescription);
        // Get the stream containing content returned by the server.
        dataStream = response.GetResponseStream ();
        // Open the stream using a StreamReader for easy access.
        StreamReader reader = new StreamReader (dataStream);
        // Read the content.
        string responseFromServer = reader.ReadToEnd ();
        // Display the content.
        Console.WriteLine (responseFromServer);
        // Clean up the streams.
        reader.Close ();
        dataStream.Close ();
        response.Close ();
于 2012-04-09T17:38:31.567 に答える