将JsonObject发布到服务器,android
我试图将我的json对象发送到服务器地址,但它不允许我这样做,给了我执行方法上的错误,我在这个论坛上尝试了关于这个问题的所有答案,但仍然无法使其工作,你认为我的错误是什么 这是密码将JsonObject发布到服务器,android,android,json,post,request,server,Android,Json,Post,Request,Server,我试图将我的json对象发送到服务器地址,但它不允许我这样做,给了我执行方法上的错误,我在这个论坛上尝试了关于这个问题的所有答案,但仍然无法使其工作,你认为我的错误是什么 这是密码 public class MainActivity extends Activity implements OnClickListener{ Button btnLogin, btnRegister; EditText tvEmail, tvPassword; TextView tv
public class MainActivity extends Activity implements OnClickListener{
Button btnLogin, btnRegister;
EditText tvEmail, tvPassword;
TextView tvResultJson1;
Gson g;
AsyncHttpClient client;
Usuario usuario;
public String url = "http://unshakable-kingswood-61-157350.use1-2.nitrousbox.com:9000/login";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mainlogin);
btnLogin =(Button)findViewById(R.id.btnLogin);
btnRegister=(Button)findViewById(R.id.btnRegister);
tvEmail=(EditText)findViewById(R.id.tvEmail);
tvPassword=(EditText)findViewById(R.id.tvPassword);
tvResultJson1=(TextView)findViewById(R.id.tvResultJson1);
client= new AsyncHttpClient();
g= new Gson();
btnRegister.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Intent i= new Intent(MainActivity.this, RegisterForm.class);
//startActivity(i);
}
});
// check if you are connected or not
if(isConnected()){
}
else{
Toast toast1 =
Toast.makeText(getApplicationContext(),
"there is no internet access", Toast.LENGTH_SHORT);
toast1.show();
finish();
}
btnLogin.setOnClickListener((OnClickListener) this);
}
private boolean isConnected() {
ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Activity.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected())
return true;
else
return false;
}
public void onClick(View view) {
// Get user defined values
sendData();
}
private void sendData() {
String json="";
Usuario usuario = new Usuario();
usuario.setMail(tvEmail.getText().toString());
usuario.setPass(tvPassword.getText().toString());
JsonObject jsonObject= new JsonObject();
jsonObject.addProperty("mail", usuario.getNombre());
jsonObject.addProperty("pass", usuario.getPass());
json = jsonObject.toString();
UploadASyncTask upload = new UploadASyncTask();
upload.execute(jsonObject);
}
private class UploadASyncTask extends AsyncTask<JSONObject, Void, Void>{
@Override
protected Void doInBackground(JSONObject...jsonObject) {
try{
HttpParams params = new BasicHttpParams();
//params.setParameter("data", auth);
HttpClient httpclient = new DefaultHttpClient(params);
HttpPost httpPost = new HttpPost("http://unshakable-kingswood-61-157350.use1-2.nitrousbox.com:9000/login");
List<NameValuePair> postParams = new ArrayList<NameValuePair>();
postParams.add(new BasicNameValuePair("data", jsonObject.toString()));
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(postParams);
entity.setContentEncoding(HTTP.UTF_8);
httpPost.setEntity(entity);
HttpResponse httpResponse = httpclient.execute(httpPost);
InputStream inputStream = httpResponse.getEntity().getContent();
String result = "";
if(inputStream != null){
result="Si funciono";
}
else{
result = "Did not work!";
}
Log.d("RESULT", result);
}catch(Exception e){
Log.e("ERROR IN SEVER UPLOAD", e.getMessage());
}
return null;
}
}
}
public类MainActivity扩展活动实现OnClickListener{
按钮btnLogin,BTN注册表;
编辑文本tvEmail,tvepassword;
TextView tvResultJson1;
格森g;
异步httpclient;
乌萨里奥·乌萨里奥;
公共字符串url=”http://unshakable-kingswood-61-157350.use1-2.nitrousbox.com:9000/login";
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.mainlogin);
btnLogin=(按钮)findViewById(R.id.btnLogin);
btnRegister=(按钮)findViewById(R.id.btnRegister);
TveEmail=(EditText)findViewById(R.id.TveEmail);
tvPassword=(EditText)findViewById(R.id.tvPassword);
tvResultJson1=(TextView)findViewById(R.id.tvResultJson1);
client=新的AsyncHttpClient();
g=新Gson();
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//意图i=新意图(MainActivity.this、RegisterForm.class);
//星触觉(i);
}
});
//检查您是否已连接
如果(断开连接()){
}
否则{
敬酒=
Toast.makeText(getApplicationContext(),
“没有互联网接入”,Toast.LENGTH_SHORT);
toast1.show();
完成();
}
btnLogin.setOnClickListener((OnClickListener)this);
}
私有布尔值未连接(){
ConnectivityManager connMgr=(ConnectivityManager)getSystemService(Activity.CONNECTIVITY_服务);
NetworkInfo NetworkInfo=connMgr.getActiveNetworkInfo();
if(networkInfo!=null&&networkInfo.isConnected())
返回true;
其他的
返回false;
}
公共void onClick(视图){
//获取用户定义的值
sendData();
}
私有void sendData(){
字符串json=“”;
Usuario Usuario=新的Usuario();
usuario.setMail(tvEmail.getText().toString());
setPass(tvPassword.getText().toString());
JsonObject JsonObject=新的JsonObject();
addProperty(“mail”,usuario.getNombre());
addProperty(“pass”,usuario.getPass());
json=jsonObject.toString();
UploadASyncTask upload=新建UploadASyncTask();
upload.execute(jsonObject);
}
私有类UploadASyncTask扩展了AsyncTask{
@凌驾
受保护的Void doInBackground(JSONObject…JSONObject){
试一试{
HttpParams params=新的BasicHttpParams();
//参数设置参数(“数据”,认证);
HttpClient HttpClient=新的默认HttpClient(参数);
HttpPost HttpPost=新的HttpPost(“http://unshakable-kingswood-61-157350.use1-2.nitrousbox.com:9000/login");
List postParams=new ArrayList();
add(新的BasicNameValuePair(“data”,jsonObject.toString());
UrlEncodedFormEntity实体=新的UrlEncodedFormEntity(后参数);
setContentEncoding(HTTP.UTF_8);
httpPost.setEntity(实体);
HttpResponse HttpResponse=httpclient.execute(httpPost);
InputStream InputStream=httpResponse.getEntity().getContent();
字符串结果=”;
如果(inputStream!=null){
result=“Si functiono”;
}
否则{
结果=“不起作用!”;
}
Log.d(“结果”,结果);
}捕获(例外e){
Log.e(“服务器上传错误”,e.getMessage());
}
返回null;
}
}
}
您已经混淆了导入内容
在sendData()
中,您使用的是JsonObject
——请注意驼峰大小写
在您的AsyncTask
中,您使用的是一个JSONObject
-注意,JSON都是大写。带有“upload.execute(JSONObject)”,为我提供了execute(JSONObject…)方法。在类型AsyncTask不适用于参数(JSONObject)中,我更改了它,并给出了相同的错误