private void postValues (JSONObject param) throws ClientProtocolException, IOException{
String url = "http://app.taosame.com/index.php/user/login.html";
System.out.println(url);
HttpPost request = new HttpPost(url);
// 绑定到请求 Entry
StringEntity se;
se = new StringEntity(param.toString());
System.out.println("StringEntity长度------->"+se.getContentLength());
request.setEntity(se);
System.out.println("是否已经加入道Entity"+se);
// 发送请求
HttpResponse httpResponse = new DefaultHttpClient().execute(request);
System.out.println("状态-s------------------>"+httpResponse.getStatusLine().getStatusCode());
// 得到应答的字符串
String retSrc = EntityUtils.toString(httpResponse.getEntity());
System.out.println("返回值信息------------->"+retSrc);
if(retSrc.equals("error")){
Toast.makeText(MainActivity.this, "用户名或密码错误", Toast.LENGTH_LONG).show();
}
else if (retSrc.equals("error1")){
Toast.makeText(MainActivity.this, "没有该用户", Toast.LENGTH_LONG).show();
}
else if (retSrc.equals("0")) {
Toast.makeText(MainActivity.this, "请输入用户名和密码", Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(MainActivity.this, "登陆成功", Toast.LENGTH_LONG).show();
}
// 生成 JSON 对象
//JSONObject result = new JSONObject( retSrc);
//String token = result.get("token");
}
各位大神帮我解决下安卓用post方法向服务器传值,状态输出以及下面的输出都没有打印
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- ChatGPTᴼᴾᴱᴺᴬᴵ 2024-02-13 17:03关注
所有内容均由人工智能模型输出,其内容的准确性和完整性无法保证,不代表我的态度或观点。
该回答引用文心大模型4.0,仅提供参考,不保证完全正确
目前为文心大模型4.0专栏,网页版本:V2.5.3(2024.1.19)
你的代码看起来大体上是正确的,但可能存在一些问题。首先,你应该确保你的服务器正在运行,并且URL是正确的。然后,你应该检查你的网络权限,确保你的Android应用有权限访问网络。
另外,你的代码在主线程上执行网络操作,这在Android中是不被允许的。从Android 3.0开始,网络操作不允许在主线程上执行,因为这可能会导致应用界面停止响应。你应该使用异步任务(AsyncTask)或者其他的线程来处理网络请求。
以下是一个使用AsyncTask来执行你的post请求的示例:
private class PostTask extends AsyncTask<JSONObject, Void, String> { @Override protected String doInBackground(JSONObject... params) { JSONObject param = params[0]; String url = "http://app.taosame.com/index.php/user/login.html"; HttpPost request = new HttpPost(url); StringEntity se; try { se = new StringEntity(param.toString()); request.setEntity(se); HttpResponse httpResponse = new DefaultHttpClient().execute(request); System.out.println("状态-s------------------>" + httpResponse.getStatusLine().getStatusCode()); String retSrc = EntityUtils.toString(httpResponse.getEntity()); System.out.println("返回值信息------------->" + retSrc); return retSrc; } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String result) { super.onPostExecute(result); if (result != null) { if (result.equals("error")) { Toast.makeText(MainActivity.this, "用户名或密码错误", Toast.LENGTH_LONG).show(); } else if (result.equals("error1")) { Toast.makeText(MainActivity.this, "没有该用户", Toast.LENGTH_LONG).show(); } else if (result.equals("0")) { Toast.makeText(MainActivity.this, "请输入用户名和密码", Toast.LENGTH_LONG).show(); } else { Toast.makeText(MainActivity.this, "登陆成功", Toast.LENGTH_LONG).show(); } } } }
然后你可以像这样调用它:
JSONObject param = new JSONObject(); // 设置你的param // ... new PostTask().execute(param);
请注意,
DefaultHttpClient
在API级别22中已被弃用。对于新的应用程序,建议使用HttpURLConnection
或者第三方网络库,如OkHttp或Retrofit。这些库提供了更好的性能和更简单的API。同时,对于HTTPS请求,DefaultHttpClient
也不支持SNI(服务器名称指示),这可能会导致与某些服务器的连接问题。
图片转文字可能造成误差,不代表模型真实水平
解决 无用评论 打赏 举报
悬赏问题
- ¥15 交替优化波束形成和ris反射角使保密速率最大化
- ¥15 树莓派与pix飞控通信
- ¥15 自动转发微信群信息到另外一个微信群
- ¥15 outlook无法配置成功
- ¥30 这是哪个作者做的宝宝起名网站
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程