这是我的“ MainActivity.java”代码,我无法将JSONObject发布到API服务器,也无法在简单的Textview中获取响应数据。请帮忙。我是Java新手
当我尝试构建项目时,它没有显示任何内容
http://www.zoftino.com/get-&-post-data-using-http-library-volley-in-android
参考链接在上面。
import android.content.res.Resources;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
private Button getApiBtn, postApiBtn;
private TextView resultTextView;
RequestQueue requestQueue;
private static final String TAG = MainActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
resultTextView = (TextView) findViewById(R.id.resultTextView);
getApiBtn = (Button) findViewById(R.id.getApiBtn);
postApiBtn = (Button)findViewById(R.id.postApiBtn);
getApiBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getData();
}
});
postApiBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
postData();
}
});
}
// methods are here for post and get
public void postData() {
try {
String url = getResources().getString(R.string.url);
JSONObject object = new JSONObject();
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
resultTextView.setText("Data Posted");
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_LONG).show();
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<>();
params.put("user_Name", "Faruk");
params.put("pas_sword", "1234567");
return params;
}
};
requestQueue.add(jsonObjectRequest);
} catch (Exception e) {
e.printStackTrace();
}
}
public void getData(){
try {
String url = getResources().getString(R.string.url);
JSONObject object = new JSONObject();
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
resultTextView.setText("Resposne : " + response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_LONG).show();
}
});
requestQueue.add(jsonObjectRequest);
} catch (Exception e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:1)
您忘了实例化RequestQueue。
请参阅此https://developer.android.com/training/volley/simple#java,以了解更多信息
答案 1 :(得分:1)
我遍历了您提到的Blog。遗漏的一件事是AndroidManifest.xml
中的Internet许可。请将此<uses-permission android:name="android.permission.INTERNET"/>
权限添加到您的清单中,然后重试。
如果其他原因导致该问题,请明确说明您的问题。您的postData
方法的键名正确吗? pas_sword