Cara memanggil layanan POST RESTFUL melalui aplikasi Konsol

Saya memiliki layanan rest ful (POST) yang menerima objek Json sebagai input (Badan permintaan di Fiddler). Sekarang saya ingin menggunakan layanan dari Aplikasi Konsol dengan nilai dinamis (baik dibaca dari file teks atau nilai hardcode). Saya akan mencatat tindakan seperti, untuk data pengujian XXXXX ini, layanan mengembalikan nilai.

Adakah yang bisa membantu saya cara mengotomatiskan proses ini. Saya ingin menggunakan layanan ini dari aplikasi Konsol.

Harap dicatat Output juga string JSON.

Setiap saran akan sangat membantu saya.


person BlueMoon    schedule 19.12.2014    source sumber


Jawaban (2)


Untuk membuat permintaan POST, seperti:

var req = WebRequest.Create(url);
var enc = new UTF8Encoding(false);
var data = enc.GetBytes(serializedJson);

req.Method = "POST";
req.ContentType = "application/json";
req.ContentLength = data.Length;

using (var sr = req.GetRequestStream())
{
    sr.Write(data, 0, data.Length);
}
var res = req.GetResponse();
var res= new StreamReader(res.GetResponseStream()).ReadToEnd();

Anda dapat dengan mudah membuat serializedJson dari objek seperti:

var serializedJson = Newtonsoft.Json.JsonConvert.SerializeObject(myDataObject);
person mkocubinski    schedule 19.12.2014

Instal paket api web berikut dari nuget di proyek konsol Anda

Tambahkan referensi ke System.Net.Http dan System.Runtime.Serialization

Buat kelas kontrak dari data yang ingin Anda kirim dan terima (sama seperti di layanan web Anda)

[DataContract]
public class YourObject{
    [DataMember]
    public int Id {get; set;}
}

Di aplikasi konsol Anda, panggil layanan web seperti ini:

var client = new HttpClient();
var response = client.PostAsJsonAsync<YourObject>("http://yourserviceurl:port/controller", objectToPost).Result;
if(response.IsSuccessStatusCode){
    Console.WriteLine(response);
}else{
    Console.WriteLine(response.StatusCode);
}

Info lebih lanjut tentang webapi di sini dan di sini

person HoXa    schedule 19.12.2014