データベース レコードを更新する方法を探しています。ユーザーからの入力を取得するためにAndroidクライアントを使用しています。Android クライアントは、c# で記述された wcf json を介して SQL データベースと通信しています。
私はググり、またstackoverflowを検索して、最終的にhttp PUTを使用してレコードを更新できることを知りました。Android クライアントと C# で http PUT メソッドを実装しようとしました。C#で正常に動作しています(フィドラーでチェック)。
xml ではなく json http メソッドを使用したい。したがって、検索しても、適切な実例が見つかりませんでした。
AndroidでHttp Put jsonメソッドを実装する方法を教えてください。
編集済み
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPut httpPut= new HttpPut("http://10.0.2.2:4806/Service1.svc/UpdateData");
httpPut.setHeader("Accept", "application/json");
httpPut.setHeader("Content-type", "application/json");
JSONStringer getdat = new JSONStringer()
.object()
.key("pd")
.object()
.key("ID").value(txtid.getText().toString())
.key("Name").value(txtname.getText().toString())
.key("Project").value(txtproject.getText().toString())
.key("Result").value(txttotal.getText().toString())
.endObject()
.endObject();
StringEntity entity = new StringEntity(getdat.toString(),"UTF-8");
entity.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
entity.setContentType("application/json");
httpPost.setEntity(entity);
// Send request to WCF service
HttpResponse response = httpClient.execute(httpPut);
Log.d("WebInvoke", "Saving : " + response.getStatusLine().getStatusCode());
Toast.makeText(this, response.getStatusLine().getStatusCode() + "\n", Toast.LENGTH_LONG).show() ;
}
}
catch(SocketException ex)
{
Log.e("Error : " , "Error on soapPrimitiveData() " + ex.getMessage());
ex.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
}
}