Android:使用JSON将数据发布到web服务
问题描述:
在我的代码中,我将数据发布到web服务,但是我从web服务获得的响应是指定的数据为空。这意味着我的请求正在被处理web服务,但它不能获取相应的键值。Android:使用JSON将数据发布到web服务
代码:
Button b1=(Button)findViewById(R.id.button1);
b1.setOnClickListener(new OnClickListener()
{
public void onClick(View v) {
String gaurav ="new_member="+"[{\"email\":\"[email protected]\",\"username\":\"gaurav001\",\"pwd\":\"gaurav001\"}]";
// TODO Auto-generated method stub
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("url");
try{
String d="[email protected]";
JSONObject json = new JSONObject();
json.put("gaurav", gaurav);
// json.put("api_token",settings.getString("api_token", ""));
StringEntity se = new StringEntity(json.toString());
httppost.setEntity(se);
httppost.setHeader("Accept", "application/json");
httppost.setHeader("Content-type", "application/json");
se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
HttpResponse response = httpclient.execute(httppost);
HttpEntity responseEntity =response.getEntity();
Log.e("USER", EntityUtils.toString(responseEntity).trim());
} catch (UnsupportedEncodingException e11) {
// TODO Auto-generated catch block
Log.e("USER", e11.getMessage());
} catch (ClientProtocolException e11) {
// TODO Auto-generated catch block
Log.e("USER", e11.getMessage());
} catch (IOException e11) {
// TODO Auto-generated catch block
Log.e("USER", e11.getMessage());
} catch (JSONException e11) {
// TODO Auto-generated catch block
e11.printStackTrace();
}
}
}
);
来自服务器的响应是:
12-16 13:59:47.542: E/USER(1257): [{"errorcode":"012"}]
从服务器响应列表:
012 You must enter your e-mail address
013 You must enter your username
014 The username you chose is already taken
015 Your e-mail address is invalid
016 The e-mail address you entered is already taken
017 You must enter a password
025 Your username should have at least 4 characters
024 Username can only contain letters A-Z and numbers 0-9
我得到了所有被罚款会感觉,那要么是我的弦高卢;文字是问题。她是我必须按照web服务规范通过的字符串:
new_member = [{“email”:“[email protected]”,“username”:“gaurav001”,“pwd”:“gaurav001”}]
我已经尝试了很多次,但仍然收到了错误代码:12。
答
我在做什么是一样的东西,
JSONObject jsonObject = new JSONObject();
jsonObject.put("email", "[email protected]");
jsonObject.put("uname", "test");
jsonObject.put("upwd", "test123");
JSONArray jArrayParam = new JSONArray();
jArrayParam.put(jsonObject);
List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>();
nameValuePair.add(new BasicNameValuePair("bulkdata",jArrayParam.toString()));
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
httppost.addHeader("Content-Type", "application/x-www-form-urlencoded");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
使用bulkdata你可以在服务器端获取这些值..