如何在android中向服务器发送JSON数据?
由于所有旧方法都已被弃用,如http post、response、http client、string entity等,我想知道2017年如何将json数据发布到android服务器上。我的应用程序应该使用POST方法向服务器注册或发送JSON数据,如电子邮件、联系人号码和密码,然后服务器将给出JSON响应,如状态、消息和名为数据的数组。数据是仅由2个对象(即令牌和电子邮件)组成的数组。请帮忙 像这样试试看如何在android中向服务器发送JSON数据?,android,json,Android,Json,由于所有旧方法都已被弃用,如http post、response、http client、string entity等,我想知道2017年如何将json数据发布到android服务器上。我的应用程序应该使用POST方法向服务器注册或发送JSON数据,如电子邮件、联系人号码和密码,然后服务器将给出JSON响应,如状态、消息和名为数据的数组。数据是仅由2个对象(即令牌和电子邮件)组成的数组。请帮忙 像这样试试看 private void registerUser(){ final S
private void registerUser(){
final String username = editTextUsername.getText().toString().trim();
final String password = editTextPassword.getText().toString().trim();
final String email = editTextEmail.getText().toString().trim();
StringRequest stringRequest = new StringRequest(Request.Method.POST, REGISTER_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG).show();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG).show();
}
}){
@Override
protected Map<String,String> getParams(){
Map<String,String> params = new HashMap<String, String>();
params.put(KEY_USERNAME,username);
params.put(KEY_PASSWORD,password);
params.put(KEY_EMAIL, email);
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
private void registerUser(){
最终字符串用户名=editTextUsername.getText().toString().trim();
最终字符串密码=editTextPassword.getText().toString().trim();
最终字符串email=editTextEmail.getText().toString().trim();
StringRequest StringRequest=新建StringRequest(Request.Method.POST,REGISTER\u URL,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG.show();
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG.show();
}
}){
@凌驾
受保护的映射getParams(){
Map params=新的HashMap();
参数put(KEY_用户名、用户名);
参数put(钥匙密码、密码);
参数put(钥匙、电子邮件、电子邮件);
返回参数;
}
};
RequestQueue RequestQueue=Volley.newRequestQueue(this);
添加(stringRequest);
}
使用凌空截击来完成下面的链接检查示例
创建RequestQueue类的对象
创建带有响应和错误侦听器的StringRequest
我认为您需要尝试使用Loopj库来发送Json数据
而且很容易理解
请使用改型、截击或httpurlconnection提供代码,这将非常有用。我尝试过截取,但我不知道如何发送json,而我只能正确获得响应,但无法注册。之前尝试过,但不起作用,因为它没有发送json数据兄弟。你也尝试过截取吗?那么,您会遇到什么错误?代码中没有错误,只是无法注册。我不知道在发送时如何将数据编码为json。我还使用了hashmaps。
RequestQueue queue = Volley.newRequestQueue(this);
StringRequest sr = new StringRequest(Request.Method.POST,"http://api.someservice.com/post/comment", new Response.Listener<String>() {
@Override
public void onResponse(String response) {
mPostCommentResponse.requestCompleted();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
mPostCommentResponse.requestEndedWithError(error);
}
}){
@Override
protected Map<String,String> getParams(){
Map<String,String> params = new HashMap<String, String>();
params.put("user",userAccount.getUsername());
params.put("pass",userAccount.getPassword());
params.put("comment", Uri.encode(comment));
params.put("comment_post_ID",String.valueOf(postId));
params.put("blogId",String.valueOf(blogId));
return params;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String,String> params = new HashMap<String, String>();
params.put("Content-Type","application/x-www-form-urlencoded");
return params;
}
};
queue.add(jsObjRequest);
try{
AsyncHttpClient client = new AsyncHttpClient();
JSONObject obj = new JSONObject();
obj.put("email",email);
obj.put("contact_number",contact_number);
obj.put("password",password);
entity = new StringEntity(obj.toString());
client.post(getApplicationContext(), "Your_URL", entity, "application/json", new TextHttpResponseHandler() {
@Override
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
Log.d("LoginActivity","Failed");
Log.d("LoginActivity","body " + responseString);
}
@Override
public void onSuccess(int statusCode, Header[] headers, String responseString) {
Log.d("LoginActivity","data " + responseString);
try {
JSONObject respObj = new JSONObject(responseString);
String data = respObj.toString();
Log.d("LoginActivity","Data : " + data);
} catch (JSONException e) {
e.printStackTrace();
}
}
});
}catch (Exception ex){
Log.d("LoginActivity","Getting Exception "+ex.toString());
}