我正在寻找更新数据库记录的方法。我正在使用 android 客户端从用户那里获取输入。Android客户端通过c#编写的wcf json与sql数据库进行通信。
我用谷歌搜索并通过stackoverflow搜索,终于知道我可以使用http PUT来更新记录。我试图在我的 android 客户端和 c# 中实现 http PUT 方法。它在 c# 中工作正常(由提琴手检查)。
我想使用 json http 方法而不是 xml。因此搜索并没有找到任何好的工作示例。
请帮助我如何在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();
}
}