文档章节

response = httpclient.execute(httppost); 无反应解决方法

先进青年
 先进青年
发布于 2016/11/08 17:17
字数 461
阅读 59
收藏 0
点赞 0
评论 0

   @Override
                public void run()
                {
                        // 请求的地址
                        String url = "http://192.168.1.1/MyService/loginAction.action";
                        Log.d("me", "请求服务器进行登录验证的URL:" + url);

                        // 创建一个HttpClient对象
                        HttpClient httpclient = new DefaultHttpClient();

                        // 创建HttpPost
                        HttpPost httppost = null;
                        httppost = new HttpPost(url);

                        // 添加请求参数
                        List<NameValuePair> formparams = new ArrayList<NameValuePair>();
                        formparams.add(new BasicNameValuePair("username", username));
                        formparams.add(new BasicNameValuePair("password", password));

                        UrlEncodedFormEntity uefEntity;

                        try
                        {
                                uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8");

                                httppost.setEntity(uefEntity);

                                HttpResponse response;
                                // 执行Post请求
                                response = httpclient.execute(httppost);   //到这里卡住了,不向下执行了。但不抛出任何错误,也没有被catch捕获

                                // 如果请求成功
                                if (response.getStatusLine().getStatusCode() == 200)
                                {
                                        // 获取响应实体
                                        HttpEntity entity = response.getEntity();

                                        if (entity != null)
                                        {
                                                String json = EntityUtils.toString(entity, "UTF-8");
                                                Log.d("me", "从服务器返回的登录验证结果对应的json为:" + json);

                                                // 将json通过Message发送
                                                Message msg = handler.obtainMessage();
                                                msg.obj = json;
                                                handler.sendMessage(msg);
                                        }
                                }
                                else
                                {
                                        Log.d("me", "请求服务器失败,错误代码为:" + response.getStatusLine().getStatusCode());
                                }
                        }
                        catch (ClientProtocolException e)
                        {
                                e.printStackTrace();
                        }
                        catch (UnsupportedEncodingException e)
                        {
                                e.printStackTrace();
                        }
                        catch (IOException e)
                        {
                                e.printStackTrace();
                        }
                }
        }

 

自己的:

public  void ewayAddCard(String nameCard,String cardNub,String mm,String yy,String cvn) {

        HttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost("https://api.sandbox.ewaypayments.com/AccessCodes");
        try {
            httpPost.addHeader("Content-Type","application/json");
//            httpPost.addHeader("Authorization","Basic Rjk4MDJDUEY4Mm5TNy9tN1N4UFRQK21MY1U3MGRiNTNZTDBYNjBWa25UVmtPVEJjN2Z5WGVaWlA5WkZqRWpjNzZDOEdGUDpTaGFyZVBhc3M1NTY2");

            if (AccessCode != null&&FormActionURL!=null) {

                String accesscode = AccessCode;
                String fromAction = FormActionURL;
                System.out.println("------------accesscode-----------"+accesscode);
                System.out.println("-----------FormActionURL------------"+FormActionURL);

                HttpPost httpPost2 = new HttpPost(fromAction);

                List<NameValuePair> data = new ArrayList<NameValuePair>();
                data.add(new BasicNameValuePair("EWAY_ACCESSCODE", accesscode));
                data.add(new BasicNameValuePair("EWAY_PAYMENTTYPE", "Credit Card"));
                data.add(new BasicNameValuePair("EWAY_CARDNAME", nameCard));
                data.add(new BasicNameValuePair("EWAY_CARDNUMBER", cardNub));
                data.add(new BasicNameValuePair("EWAY_CARDEXPIRYMONTH", mm));
                data.add(new BasicNameValuePair("EWAY_CARDEXPIRYYEAR", yy));
                data.add(new BasicNameValuePair("EWAY_CARDCVN", cvn));


                httpPost2.setEntity(new UrlEncodedFormEntity(data,"UTF-8"));
                HttpResponse httpResponse2 = httpClient.execute(httpPost2);
                HttpEntity entity2 = httpResponse2.getEntity();
                if (null != entity2) {
                    String responseContent = EntityUtils.toString(entity2, "UTF-8");
                    System.out.println("-----------------------------"+responseContent);
                    if ("Credit Card bind failed".equals(responseContent)){
                        showToastInThread(getResources().getString(R.string.creditCard_fail));
                        this.finish();
                    }
                    else if ("Credit card binding is successful".equals(responseContent)){
                        showToastInThread(getResources().getString(R.string.creditCard_successful));
                        dialogs.dismiss();
                        this.finish();
                    }
                }else {
                    showToastInThread(getResources().getString(R.string.creditCard_fail));
                    dialogs.dismiss();
                    this.finish();
                }
            }
        } catch (Exception e) {
            showToastInThread(getResources().getString(R.string.creditCard_fail));
            e.printStackTrace();
            dialogs.dismiss();
            this.finish();
        } finally{
            httpClient.getConnectionManager().shutdown();
        }
    }

 

我的解决方法是这样的,不知道你们是否适用:

在onCreate方法里面加上这段:

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
        .detectDiskReads()
        .detectDiskWrites()
        .detectNetwork()   // or .detectAll() for all detectable problems
        .penaltyLog()
        .build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
        .detectLeakedSqlLiteObjects()
        .detectLeakedClosableObjects()
        .penaltyLog()
        .penaltyDeath()
        .build());

   原因是android阻止了post请求。networkonmain 的exception

© 著作权归作者所有

共有 人打赏支持
先进青年
粉丝 0
博文 28
码字总数 9089
作品 0
武汉
代理请求拦截

想用nginx拦截代理请求到自己后台,比如httpclient的 HttpPost postMethod = new HttpPost(url); HttpHost proxy = new HttpHost("127.0.0.1", 8282); response = httpClient.execute(postMet......

mr_darcy
2017/04/13
98
3
HttpClient使用详解(http伪造文件上传请求)

Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发...

岸芷汀兰
2015/08/09
0
0
HttpClient 简单测试

当客户端不支持调用jackson转换处理response数据时,报406错误。此时可以手动反序列化为一个string串。 406问题: 方案一、 在服务端手动转json,返回一个字符串。 方案二.、当url 后缀为html,...

中柠檬
2016/12/12
546
0
身份证识别接口编写的JAVA调用示例

此java文章是基本聚合数据证件识别接口来演示,基本HTTP POST请求上传图片并接收JSON数据来处理。使用前你需要通过https://www.juhe.cn/docs/api/id/153申请一个名片识别的appkey 1.支持的证...

熊babi
2016/08/16
139
0
从远程服务器获取数据

package com.utils; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; im......

建华1
2015/10/07
211
2
httppost乱码问题

protected String doInBackground(String... params) { /*StringBuffer sb=new StringBuffer(); String line=null; BufferedReader buffer=null;*/ try { StringBuffer buffer = new StringB......

伊斯坦堡
2015/09/14
723
3
安卓请求网络Get和Post请求方式

package com.jzlg.asyncexam; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; import org.apache.http.HttpResponse; import org.apache......

绝版公子
2014/04/13
0
0
HttpClientUtil 实现doget 和 dopost

package com.shangyu.utils; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.M......

沉淀人生
2016/10/17
0
0
android从服务器取数据时中午乱码

HttpPost post=new HttpPost(StaticInfo.FINDALLNEWS); List params = new ArrayList(); try { post.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); } catch (UnsupportedEncodingE......

ydww
2013/04/02
457
0
HttpContext 的parentcontext作用

HttpContext 的parentcontext作用, HttpResponse response=httpclient.execute(httpPost, localContext) 这句话在执行什么?...

_undefine
2013/04/01
99
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

组件及路由理论知识

一、 组件component 1. 什么是组件? 组件(Component)是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码组件是自定义元素(对象) 2. 定义组件的方式 方式1:先创建...

一个yuanbeth
刚刚
0
0
Saltstack配置之 nodegroups

#cd /etc/salt #mkdir master.d #vim node.conf //按组写入文件 nodegroups: client_all: 'L@192.168._._,192.168._._' clienta: 'L@192.168.192._' clientb: 'L@192.168.192._' #/etc/init......

硅谷课堂
7分钟前
0
0
expect(spawn) 自动化git提交和scp拷贝---centos(linux)

**在进行SCP文件拷贝中,往往需要进行用户密码的输入,即用户交互。若采用自动化脚本的方式进行,则可用以下方式: ** #!/usr/bin/expect #设置参数 set src [lindex $argv 0] set dest [lin...

helplove
10分钟前
1
0
用Build来构建对象的写法

如果一个类的属性过多,用构造器来构建对象很难写,因此我们时用Build方式来构建对象。写法大致如下。 import java.io.Serializable;import java.util.Date;public class Log impleme...

算法之名
13分钟前
11
0
利用 acme.sh 获取网站证书并配置https访问

acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书.(https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E) 主要步骤: 安装 acme.sh 生成证书 copy 证书到 nginx/ap...

haoyuehong
26分钟前
2
0
微擎框架内如何根据media_id获取到微信图片的路径

微擎的框架内,图片选择后,获取的是那个字符串是media_id,相当于你这张图片在微信的图片服务器里面的id 要求是:获取https://mmbiz.qpic.cn/mmbiz_jpg/…… 微信图片的路径 而微信并没有根据m...

老bia同学
30分钟前
2
0
Spring boot中日期的json格式化

Model 在model层中,类的日期属性上面添加如下注解: @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd hh:mm:ss") 参考 Jackson Date格式化教程...

亚林瓜子
32分钟前
2
0
Eclipse:Failed to load the JNI shared library

1.问题背景: 由于我之前使用jdk1.9学习,当使用Luke的时候发现jdk版本过高,需要向下配置jdk,就向朋友拷了一个安装包。重新配置路径后,便开始报错。 2.问题描述: Failed to load the JNI...

tinder_boy
34分钟前
1
0
少儿学习编程课程是否真的适合七八岁的低龄儿童[图]

少儿学习编程课程是否真的适合七八岁的低龄儿童[图]: 天下熙熙皆为利来,天下攘攘皆为利往。 这几年来,乐高教育机构在国内如同雨后春笋般出现,当然关闭/转手的也很多。从教师角度来看,部...

原创小博客
39分钟前
1
0
ES12-词项查询

1.词项查询介绍 全文查询将在执行之前分析查询字符串,但词项级别查询将按照存储在倒排索引中的词项进行精确操作。这些查询通常用于数字,日期和枚举等结构化数据,而不是全文本字段。 或者,...

贾峰uk
47分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部