REST WCFサービスにデータをPOSTするのが難しいです。 jsonオブジェクト/配列を送る必要がありますが、私のPOSTメソッドは、JSON(この部分を変更することはできません)を取得するために離れて選択されたStreamを予期しています。ストリームでアンドロイド/ httpclientを使用してjsonデータをRESTサービスにポスト
私はこのコードをC#でこれを達成しています
public static string CallPostService(string url, string data)
{
url = Config.serviceAddress + url;
string json = data;
byte[] buffer = Encoding.UTF8.GetBytes(json);
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Method = "POST";
request.Credentials = new NetworkCredential("user", "pass");
request.ContentType = "application/x-www-form-urlencoded";
using (StreamWriter sw = new StreamWriter(request.GetRequestStream()))
{
sw.Write(json);
Console.WriteLine(json);
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader sr = new StreamReader(response.GetResponseStream()))
{
string res = sr.ReadToEnd();
return res;
}
}
私は、好ましくはApacheのHttpClientを使用して、これを行うには、いくつかの同等のJavaコードが必要です。私はhttpライブラリには新しく、少しの方向性に感謝します。
EDITS:
は、ここに私のWCFサービスからのメソッドヘッダです。要求本体はストリームでなければならないので、サービスはそれを処理できます。
[WebInvoke(Method = "POST", UriTemplate = "person/delete", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
Person DeletePerson(Stream streamdata) { //bla }
を動作するはずですDINT – njzk2
あなたが何を求めているのか分かりませんが、実際にはHttpClientでGETを実行できました。 –
投稿は同じ方法で動作します。エンティティには多くの異なるものがあります。 – njzk2