Android关于HttpPost无法发送的问题

Manifest里添加了Internet权限

Activity类

 import com.google.gson.Gson;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity {

    Button sendButton;
    EditText userEditText, pwdEditText;
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        sendButton = (Button) findViewById(R.id.button1);
        userEditText = (EditText)findViewById(R.id.editText1);
        pwdEditText = (EditText)findViewById(R.id.editText2);
        //利用Handler更新UI
        final Handler h = new Handler(){
            @Override
            public void handleMessage(Message msg) {
                Toast.makeText(MainActivity.this, msg.toString(), Toast.LENGTH_LONG).show();
            }
        };

        sendButton.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                User user = new User();
                user.setName(userEditText.getText().toString().trim());
                user.setPwd(pwdEditText.getText().toString().trim());
                Gson gson = new Gson();
                String userJasonString = gson.toJson(user);
                new Thread(new AccessNetwork("192.168.199.1:8888/gcgl/user.do?method=login",userJasonString, h)).start();
            }           
        });
    }
}

创建的线程AccessNetwork

 import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.Toast;


public class AccessNetwork implements Runnable{
    private String url;
    private String params;
    private Handler h;

    public AccessNetwork(String url, String params,Handler h) {
        super();
        this.url = url;
        this.params = params;
        this.h = h;
    }

    @Override
    public void run() {
        Message m = new Message();
        m.obj = sendPost(url, params);
        h.sendMessage(m);
    }

    public static String sendPost(String url, String params)
    {
        List<NameValuePair> nameValuePairs;
        String displayString="1";

        try
        {
            HttpClient httpClient = new DefaultHttpClient();
            HttpPost post = new HttpPost(url);
//              httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15000); 
//              httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 15000);
//              nameValuePairs= new ArrayList<NameValuePair>();
//              nameValuePairs.add(new BasicNameValuePair("params", params));
//              post.setEntity(new UrlEncodedFormEntity(nameValuePairs,HTTP.UTF_8));
            HttpResponse rsp = httpClient.execute(post);
            HttpEntity httpEntity = rsp.getEntity();
            displayString += EntityUtils.toString(httpEntity);
        }
        catch (Exception e)
        {
            //Toast.makeText(null,e.toString(), Toast.LENGTH_LONG).show();
            e.printStackTrace();
        }
        return displayString;
    }
}

发送带不带参数的Post请求服务器端都无法得到。

0

7个回答

如果发送错误,你应该能看到错误日志的,然后核查url是否正常,端口是否打开等网络问题

1
ChiniBottle
ChiniBottle 根据您说的我看了日志发现url没有以http://开头报了错。谢谢!
3 年多之前 回复
ChiniBottle
ChiniBottle 对于错误日志我也有个问题。。有的时候LogCat里面什么都没有是为啥?
3 年多之前 回复

典型问题,没开子线程,网络操作要在工作线程执行

0
ChiniBottle
ChiniBottle 我在OnClickListener里面有new Thread(new AccessNetwork("192.168.199.1:8888/gcgl/user.do?method=login",userJasonString, h)).start();这不算是在子线程里面进行吗?
3 年多之前 回复
 new Thread(
                public void run(){

}).start();
0

初学者不要弄清楚原理,用OKHttp或者Volley就能解决问题

0

Android的4.0版本后,网络请求操作要在子线程里面运行。不能在主线程里面。

0
ChiniBottle
ChiniBottle 不好意思。。一下发了三条O.O
3 年多之前 回复
ChiniBottle
ChiniBottle 我在OnClickListener里面有new Thread(new AccessNetwork("192.168.199.1:8888/gcgl/user.do?method=login",userJasonString, h)).start();这不算是在子线程里面进行吗?
3 年多之前 回复
ChiniBottle
ChiniBottle 我在OnClickListener里面有new Thread(new AccessNetwork("192.168.199.1:8888/gcgl/user.do?method=login",userJasonString, h)).start();这不算是在子线程里面进行吗?
3 年多之前 回复
ChiniBottle
ChiniBottle 我在OnClickListener里面有new Thread(new AccessNetwork("192.168.199.1:8888/gcgl/user.do?method=login",userJasonString, h)).start();这不算是在子线程里面进行吗?
3 年多之前 回复
ChiniBottle
ChiniBottle 我在OnClickListener里面有new Thread(new AccessNetwork("192.168.199.1:8888/gcgl/user.do?method=login",userJasonString, h)).start();这不算是在子线程里面进行吗?
3 年多之前 回复
ChiniBottle
ChiniBottle 我在OnClickListener里面有new Thread(new AccessNetwork("192.168.199.1:8888/gcgl/user.do?method=login",userJasonString, h)).start();这不算是在子线程里面进行吗?
3 年多之前 回复

看url像内部地址,是否已经连上内网进行请求?

0

Android4.0的都要放在线程里,一般都是通过异步任务获取Handler机制的
你可以参考我的博客哦!http://blog.csdn.net/u014427391/article/details/50255285
希望可以帮助您!

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android中使用HttpClient导包的问题
最近学习使用HttpClient,可是发现并没有可支持的包,上网搜了一下,Android4.0之后已经没有了HttpClient。如果要用,在build.gradle中的android  {compileSdkVersion 23 buildToolsVersion "23.0.2"} 加上useLibrary 'org.apache.http.legacy'即可,同时lib
使用HttpClient中MultipartEntity传值乱码问题
使用最新的HttpClient工具包中的来发送网络请求。在提交中文参数内容时,遇到服务端接收数据为”???”等乱码情况,经查证和尝试,解决方法如下:MultipartEntityBuilder mEntityBuilder = MultipartEntityBuilder.create();       mEntityBuilder.addTextBody(&quot;appId&quot;, this.appId)...
java代码发送JSON格式的httpPOST请求
java代码发送JSON格式的httpPOST请求
关于Http Post Xml
关于HttpPostXml http://blog.sina.com.cn/s/blog_5d7ae9750100lsjw.html http://zydky.javaeye.com/blog/553854 &amp;lt;!-- 正文开始 --&amp;gt; 一、概述 在不同的应用之间传递数据,可以通过web service的方法,同时还可以通过Http Post Xml的方法,相比...
Android使用AsyncTask加http用post方式上传图片到服务器
android端代码展示: /* 上传文件至Server的方法 */ private void uploadFile() { System.out.print("正在发送请求!"); String end = "\r\n"; String twoHyphens = "--"; String boundary = "
HTTP上传Base64字符串问题
最近在使用HTTP向服务器上传经过Base64加密的图片时,发现上传后Base64字符串中的“+”全部都变成了空格。具体原因可以参看http://blog.csdn.net/liang_ys/article/details/52953716 我的解决方法是使用System.Web.HttpUtility.UrlEncode函数对字符串进行重新编码。System.Web.HttpUtility.U
HttpClient发送post请求到某个接口,不能正常返回数据
因为是做保险行业的,前段时间做了一个需求,要对接车险平台,用http方式请求数据,但是返回结果提示无数据,很纠结,因为用Postman测试的时候是有数据的,而且用java http包配合IO流写的方法是可以查询到数据的,后来经过尝试发现,可能是请求数据的时候没有指定正确的编码方式导致的,试了一下果然如此,所以跟大家分享一下,不多废话,上代码。 public static JSON...
Android开发之HttpClient网络请求以Json方式提交Post请求代码
public class PayHttpUtils { /** * @param url 请求的网址 */ public static String GetSingleCabCollect(String url) { HttpPost httpPost = new HttpPost(url); JSONObject jsonPa...
安卓网络请求使用httpclient--post请求方式
一.首先确定URL地址,String url=" 输入服务器的URL地址" 二.获得httpclient对象,不建议使用默认的构造方法,httpclient client=new chttpclient(clientconnectionmanager,httpparams). 三.post对象的构建,httppost post=new httppost(); 四.准备httpclient对象
java发送HttpPost请求绕过安全证书【SSL】
设置证书类 public class BZX509TrustManager implements X509TrustManager {     @Override     public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {         /...
Android开发中HTTP协议HttpPost向服务器发送JSon数据格式的数据
public void sendBjData(final String send) { new Thread() { @Override public void run() { HttpClient httpClient = new DefaultHttpClient(); String host_pool = application_iGBS.getApi_ed
HttpClient学习笔记(获取cookies+携带获取的cookies访问get接口)
1.首先配置好测试用的mock接口 [ { &quot;description&quot;:&quot;这是一个带cookies信息的get请求&quot;, &quot;request&quot;:{ &quot;uri&quot;:&quot;/getcookies&quot;, &quot;method&quot;:&quot;get&quot; }, &quot;response&quot;:{ &quot;cookies&q
关于HttpClient的POST请求设置参数,服务器接收参数为空的问题。。。
导入的jar包:httpcore-4.4.10.jar public static void doPost(String url, String json){ String result = null; try { String endoderJson = URLEncoder.encode(json,HTTP.UTF_8); HttpClient client = ne...
java发送httpPost请求实现
用java编写了http Post的请求代码,通过发送请求的 URL,获取远程资源的响应结果,入参为json字符串。使用到httpPost,CloseableHttpClient
HttpClient通过Post方式发送Json数据
服务器用的是Springmvc,接口内容: @ResponseBody @RequestMapping(value="/order",method=RequestMethod.POST) public boolean order(HttpServletRequest request,@RequestBody List orders) throws Exception { AdmPost
java使用HttpClient 发送带文件的formdate类型表单 post请求
先贴上代码 1.创建一个表单 // 创建一个表单 MultipartEntityBuilder builder = MultipartEntityBuilder.create(); builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); File photoFile = R...
Android http post中文乱码问题的修正
出现了类似问题,网上找的答案,记录一下~~ 在使用DefaultHttpClient向服务器发送post请求,在请求体中 发送utf-8编码的数据。 android默认编码是utf-8,所以从EditText获取的text即为utf-8编码的数据。 但是服务器接受就是乱码。 //reqEntity.setContentEncoding(&quot;UTF-8&quot;);也是乱码。 但是Stri...
Android小程序-发短信-图灵机器人-简单浏览器的设计与实现
少废话,先看东西【还在编辑中…】 代码链接:点这里 APK链接::点这里 首先,纯小白起步,参考了很多代码,如有抄袭……我也没干嘛,分享下经验嘛… 侧滑相关参考: https://blog.csdn.net/s1674521/article/details/62220187 toolbar相关参考: https://blog.csdn.net/tideseng/ar...
android http通过post请求发送一个xml
今天,简单讲讲android如何在网络请求时通过post方式发送xml数据。其实也很简单,不过我之前对网络请求这一块不太熟悉,当需要做这个发送xml数据时,居然不知道怎么做。后来,在网上查找资料,最终是解决了问题。这里记录一下。一.通过HttpURLConnection发送xml数据因为原理很简单,直接举例子。其中发送的xml数据为:&amp;lt;?xml version = “1.0” ?&amp;gt; ...
Android cookie提交不到服务器上(解决方法)
在上篇具体问题已经说到,现在来说解决的办法: 1.重新写了一遍提交部分的代码, 2.去登录界面,查询从服务器获取到的cookie,发现打包、以及包装有问题,需要重新提交一份属于该接口的cookiceStore; (因为我是接的别人的项目开始做的,所以前面有些不太了解,他的cookie方面没有封装,只是简单的实现登录就行了,也没有显示的声明cookie在哪个地方用的) 3.在提交方面用JSO...
HTTPPOST工具包
HTTPPOST模拟HTTP协议发送GET和POST数据包
Android-HTTP实例——使用GET方法、POST方法发送请求(安卓4.0以下版本)
今天模仿着书上的例子,做了下使用Get、Post方法发送请求这个小项目。项目分为服务器端和客户端,整个程序是一个图书查询程序。
HTTP发送POST请求说明
短信下发工具类接口代码逻辑与技术要点概括: 开发工具:MyEclipse9.0+Tomcat6.0x 测试方式:main方法体现,直接调用当前类内部接口方法(参数都走配置化) 工具类主方法:sendMsgUpdown()方法体体现内容: 参数配置化: eq-- params.properties: #msg send req public sc url autoMsg
Java 客户端后台使用HTTP POST传递对象参数到服务器端
       最近公司要求为系统做个离线版,在此之前,我已经提交辞职申请准备离开公司了。临走之际先把工作做好,这是对自己的工作负责。所以,也算是在这告诫大家,就算提交辞职报告了,也尽量把该做的工作做好,不要去说爱做不做之类的,大家好聚好散。好了,接下来进入正题。       近期公司想弄一个离线版系统,以便客户在断网状态下仍可使用系统某些功能。       首先,打包好离线版项目、Tomcat、J...
发送http post请求json数据到后台
public void doPost(String str, Map map) { try { URL url = new URL(str); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); co
JavaWeb初级篇-HttpPost使用教程
Post请求示例代码 1、json方式提交 HttpPost httpPost = new HttpPost(param); RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(5000).setConnectTimeout(5000).build(); httpPost.setConfig(requestCo...
HttpClient用HttpPost传输中文字符串乱码
public static String getHttpRequestString(String url,String body) throws IOException { HttpClient client = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); Stri
Android 8.0 问题:发送标准广播无法接收到
在看《第一行代码》的过程中发现发送标准广播不成功,在上一小节学习的时候手机出现静态注册开机启动不成功,但是在虚拟机上可以成功,虚拟机的系统是android9.0的,按理说这个可以手机8.0也可以,当时没有解决,认为是手机的问题(最后也没有去解决),主要讲发送标准广播的问题,由于书本上是基于7.0的,而手机是8.0的所以出现了改变,改动方案如下: 7.0: Intent intent=ne...
HTTP POST方式提交JSON数据
方式一: public static String postJSon(String url, String strJson) { HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost(url); String result = null; try { String...
使用httpclient实现post的表单模式请求
先建立两个request与response两个基类,用于存放请求与响应import java.util.List; public class HttpRequestParams { private String url; private List&amp;lt;BasicPostPara&amp;gt; params; public HttpRequestParams(String url, List...
[Android]Http通信,HttpService服务端通过getEntity获取HttpClient客户端Post上来的数据
基于Apache公司的httpclient和httpservice的使用 先看httpservice对请求处理的RequestHandler方法@Deprecated public interface HttpRequestHandler { void handle(HttpRequest var1, HttpResponse var2, HttpContext var3) throws
JAVA HTTP POST参数为一个对象或数组
原文链接http://zhaochao.net/index.php/2015/12/04/4/问题描述最近接到一个很简单的问题,对方提供了一个接口,让我每隔一段时间像他的接口推送一些数据,因为数据量比较大,所以这种Http 请求类型肯定是Post请求。这种推送过去的参数是一个很大的数组,而且数据字段比较多,所以用key=value 这种形式传过去就不太适合了,应该直接将这种数组加入Http的body
HttpClient发送http请求(post和get)需要的jar包+内符java代码案例+注解详解
里面有三种实现方法是我下载别人的整合起来的 如果有需要就下载下来看一下 我的成功了
java http请求乱码,post-raw请求json中文乱码问题
原代码             HttpClient httpClient = new DefaultHttpClient();         HttpPost post = new HttpPost(&quot;http://*******.html&quot;);         StringEntity postingString = new StringEntity(json.toJSONString()...
关于httppost 错误处理
关于post请求中map和json的问题:如下如果将方法参数中JSONObject 换成Map会报错, public static String post(String url,JSONObject jsonParam,Integer connTimeout,Integer readTimeout) throws Exception { HttpPost httpP...
android开发http请求POST&GET封装工具
最近一直想着封装个网络请求框架,但是看到有很多博客有封装而且还不错,于是就想着封装一个安卓带的,以便自己以后使用. 一,请求成功和失败回调接口public interface OnResponseListner { void onSucess(String response); void onError(String error); } 二,post&get请求方法工具类 publi
使用HttpClient发送HttpPost请求包含上传本地图片和远程图片的传输实现
  在实际项目中需要在当前系统中模拟浏览器发送一个post请求,正常情况下传文字没多大问题,但是如果带上传文件功能的话, 网上的资料不太好找,好在经过我多方寻找,加上自由发挥,真让我搞出来了。   下面代码为核心代码, 可以上传  File对象, 转换成byte数组类型(String类型Base64编码的信息的图片) String类型 的数据, 满足了,发送post请求大部分上传...
HttpClient请求参数乱码
前提:Post形式传递参数。 问题:HttpClient Post形式传递参数乱码 解决方式:扩展PostMethod public class UTF8PostMethod extends PostMethod{ public UTF8PostMethod(String url){ super(url); } @Override p...
Android使用httpClient进行Post和Get发送参数
模拟发送Http请求我们可以使用HttpURLConnection类进行操作,但是Android平台集成了功能强大且编写更容易的commons-httpclient.jar,因此在这里介绍如何通过commons-httpclient进行Http请求。发送Http请求可以有两种方式:一种是同步,一种是异步。由于我对异步不是很熟悉,所以这里先提供同步方式发送Http请求: 1、使用Get方式发送 ...
HttpPost工具
HttpPost工具 HttpPost工具 HttpPost工具 HttpPost工具