Sharon1412 2017-06-08 12:58 采纳率: 0%
浏览 3028

Android studio使用HttpurlConnection无法连接的问题。

背景:Android studio编写获取webservice soap xml 我在eclipse中用java编写的个测试例子,
用的是HttpurlConnection可以成功读取数据,但是我搬到Android studio中,无法连接,会跳转到catch。我也按照网上说的方法加了线程,以及httpclient不能使用情况下载build中加入相关uselibary等等方法,都无法连接成功。请问我应该怎么解决,有懂的朋友帮帮忙,谢谢。
以下是代码:
confirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){

                   new Thread(new Runnable()
                    {
                       @Override
                         public void run()
                          {   String id= edit.getText().toString();
                              httpClient(id);

                              }
                       }).start(); //这段代码在主线程中调用,开启一个线程
                   // String id= edit.getText().toString();
                    // httpClient(id);


             }


    });

}

private  void httpClient(String id) {

    //以SOAP1.1的格式发送
    String httpBody = XMLDom.requestSOAP1(id);
    myXMLPost(httpBody);
 }
  private void myXMLPost(final String httpBody) {

              Map<String, String> map1 = new HashMap<String, String>();
              try {//创建post对象
                  HttpURLConnection connection = (HttpURLConnection) new URL("http://119.10.51.138:86/erp.asmx").openConnection();
                  connection.setDoOutput(true);
                  connection.setDoInput(true);
                  connection.setRequestMethod("POST");
                  connection.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
                  connection.setRequestProperty("SOAPAction", "http://tempuri.org/GetPROC_ORDER_Detail");
                  connection.connect();//连接服务器
                  OutputStream os = (OutputStream) connection.getOutputStream();
                  os.write(httpBody.getBytes());
                  os.flush();
                  os.close();
                  InputStream is = (InputStream) connection.getInputStream();//获取数据,真正的请求从此处开始
                  byte[] bts = new byte[is.available()];
                  is.read(bts);
                  String detailResult = new String(bts);
                  map1 = XMLDom.getLoginResult(detailResult);
                  String s = map1.get("sl");
                  result.setText(s);
              } catch (Exception e) {
                  e.printStackTrace();
                  result.setText("连接错误");
              }
          }
  • 写回答

3条回答

  • lyj707107312 2017-06-08 13:03
    关注

    用okhttp试试行不行?

    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘