第一种:

public static String invoke() {
        String result = null;
        try {
             final String url = "http://192.168.1.104:180/";

HttpPost httpPost = new HttpPost(url);
            DefaultHttpClient httpClient = new DefaultHttpClient();

//基本身份验证
            BasicCredentialsProvider bcp = new BasicCredentialsProvider();
            String userName = "liudong";
            String password = "123";
            bcp.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(
                    userName, password));
            httpClient.setCredentialsProvider(bcp);

HttpResponse httpResponse = httpClient.execute(httpPost);

StringBuilder builder = new StringBuilder();
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    httpResponse.getEntity().getContent()));
            for (String s = reader.readLine(); s != null; s = reader.readLine()) {
                builder.append(s);
            }
            result = builder.toString();
            Log.d(TAG, "result is ( " + result + " )");
        } catch (Exception e) {
            Log.e(TAG, e.toString());
        }
        Log.d(TAG, "over");
        return result;
    }

第二种:

public static String SendRequest(String adress_Http, String strJson) {

String returnLine = "";
  try {

System.out.println("**************开始http通讯**************");
   System.out.println("**************调用的接口地址为**************" + adress_Http);
   System.out.println("**************请求发送的数据为**************" + strJson);
   URL my_url = new URL(adress_Http);
   HttpURLConnection connection = (HttpURLConnection) my_url.openConnection();
   connection.setDoOutput(true);

connection.setDoInput(true);

connection.setRequestMethod("POST");
   
   connection.setUseCaches(false);
   
   connection.setInstanceFollowRedirects(true);
   
   connection.setRequestProperty("Content-Type", "application/json");
   
   connection.connect();
   DataOutputStream out = new DataOutputStream(connection
     .getOutputStream());
   
   byte[] content = strJson.getBytes("utf-8");
   
   out.write(content, 0, content.length);
   out.flush();
   out.close(); // flush and close

BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"));

//StringBuilder builder = new StringBuilder();

String line = "";

System.out.println("Contents of post request start");

while ((line = reader.readLine()) != null) {
    // line = new String(line.getBytes(), "utf-8");
    returnLine += line;
    
    System.out.println(line);
    
   }

System.out.println("Contents of post request ends");
   
   reader.close();
   connection.disconnect();
   System.out.println("========返回的结果的为========" + returnLine);

} catch (Exception e) {
   e.printStackTrace();
  }

return returnLine;

}

第三种:

protected DAOReturnObject doInBackground(JSONObject... jsonObjects) {
  DAOReturnObject returnObject;
  try {
   publishProgress("处理中...");
   String serverUrl = "http://130.251.10.195:8091";//MServerSettingInfoDAO.getInstance().getUrl();
   String url = serverUrl+"/customerLogin";
   HttpPost httpPost = new HttpPost(url);
   Log.i("URL", url);
   ByteArrayEntity arrayEntity = null;
   byte[] jsonByte = null;
   try {
    jsonByte = jsonObjects[0].toString().getBytes(DEFAULT_ENCODING);
    arrayEntity = new ByteArrayEntity(jsonByte); 
   } catch (UnsupportedEncodingException e) {
    e.printStackTrace();
    throw new Exception("数据打包出错!");
   }
   Log.d("M-Client", "request JSON:\n" + new String(jsonByte, DEFAULT_ENCODING ));
   httpPost.setEntity(arrayEntity);
   httpPost.setHeader("Accept", "application/json");
   httpPost.setHeader("Content-type", "application/x-www-form-urlencoded");
   HttpResponse httpResponse;
   byte[] responseByte;
   String responseStr;
   try {
    DefaultHttpClient httpclient = new DefaultHttpClient();
    // 设置COOKIES
    HttpContext localContext = new BasicHttpContext();
    httpResponse = httpclient.execute(httpPost, localContext);
    if (httpResponse.getStatusLine().getStatusCode() != 200) {
     throw new Exception("接收数据出错:" + httpResponse.getStatusLine().toString());
    }
    responseByte = EntityUtils.toByteArray(httpResponse.getEntity());
    //写缓存
//    MServerSettingInfoDAO.getInstance().setStreamInfo(MClientFunction.getFileDir(), 
//      responseByte.length, "res");
//    MClientFunction.setResCurrentStream(responseByte.length);
    
    Log.d("M-Client", "response JSON:\n" + new String(responseByte, 0, responseByte.length, DEFAULT_ENCODING));
    responseStr = new String(responseByte, 0, responseByte.length, DEFAULT_ENCODING);
   } catch (ClientProtocolException e) {
    Log.e("M-Client", "接收数据出错!", e);
    throw new Exception("接收数据出错:" + e.getMessage(), e);
   } catch (IOException e) {
    Log.e("M-Client", "接收数据出错!", e);
    throw new Exception("接收数据出错:" + e.getMessage(), e);
   }
   try {
    Map<String, Object> responseMap = (Map<String, Object>)JsonUtil.json2Object(new JSONObject(responseStr));
    returnObject = new DAOReturnObject(Integer.parseInt((String) responseMap.get("code")), (String) responseMap.get("msg"), responseMap.get("res"));
   } catch (JSONException e) {
    Log.e("M-Client", "接收数据出错!", e);
    throw new Exception("接收数据出错:" + e.getMessage(), e);
   }
  } catch (Exception e) {
   return new DAOReturnObject(99, e.getMessage(), null);
  }
  return returnObject;
 }

记得加上访问权限:<uses-permission android:name="android.permission.INTERNET" />

android http json请求3种不同写法的更多相关文章

  1. Android okHttp网络请求之Json解析

    前言: 前面两篇文章介绍了基于okHttp的post.get请求,以及文件的上传下载,今天主要介绍一下如何和Json解析一起使用?如何才能提高开发效率? okHttp相关文章地址: Android o ...

  2. 转--Android按钮单击事件的四种常用写法总结

    这篇文章主要介绍了Android按钮单击事件的四种常用写法总结,比较了常见的四种写法的优劣,有不错的参考借鉴价值,需要的朋友可以参考下     很多学习Android程序设计的人都会发现每个人对代码的 ...

  3. android通过httpClient请求获取JSON数据并且解析

    使用.net创建一个ashx文件,并response.write  json格式 public void ProcessRequest(HttpContext context) { context.R ...

  4. android http post 请求与 json字符串

    一.目标 android客户端发送一个json格式的http的请求,期望得到服务端的一个json反馈. 1. 客户端发送的json格式为: {"data" : "valu ...

  5. Android按钮单击事件的四种常用写法

    这篇文章主要介绍了Android按钮单击事件的四种常用写法总结,比较了常见的四种写法的优劣,有不错的参考借鉴价值,需要的朋友可以参考下 很多学习Android程序设计的人都会发现每个人对代码的写法都有 ...

  6. Android框架Volley使用:Json请求实现

    首先我们在项目中导入这个框架: implementation 'com.mcxiaoke.volley:library:1.0.19' 在AndroidManifest文件当中添加网络权限: < ...

  7. android基础---->JSON数据的解析

    上篇博客,我们谈到了XML两种常用的解析技术,详细可以参见我的博客(android基础---->XMl数据的解析).网络传输另外一种数据格式JSON就是我们今天要讲的,它是比XML体积更小的数据 ...

  8. Android okHttp网络请求之缓存控制Cache-Control

    前言: 前面的学习基本上已经可以完成开发需求了,但是在项目中有时会遇到对请求做个缓存,当没网络的时候优先加载本地缓存,基于这个需求我们来学习一直okHttp的Cache-Control. okHttp ...

  9. Android okHttp网络请求之Retrofit+Okhttp+RxJava组合

    前言: 通过上面的学习,我们不难发现单纯使用okHttp来作为网络库还是多多少少有那么一点点不太方便,而且还需自己来管理接口,对于接口的使用的是哪种请求方式也不能一目了然,出于这个目的接下来学习一下R ...

随机推荐

  1. 【驱动】linux下I2C驱动架构全面分析

    I2C 概述 I2C是philips提出的外设总线. I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL ,使用SCL,SDA这两根信号线就实现了设备之间的数据交互,它方便了工程师的布线. ...

  2. 关于事件冒泡和键盘事件 以及与Angular的区别

    一.事件冒泡 方法一.使用event.cancelBubble = true来组织冒泡 <div @click="show2()"> <input type=&q ...

  3. Python3回文相关算法小结

    [本文出自天外归云的博客园] 总结一下关于回文相关的算法: 判断字符串本身是否是回文 返回字符串中的所有子串 找到字符串中包含的所有回文 判断字符串中是否包含回文 将字符串变成一个不包含回文的字符串 ...

  4. Cents os 7下如何安装bzip2

    # Cents os 7下如何安装bzip2 ### 安装```yum search bzip2  //查询安装包 yum -y install bzip2.x86_64 ``` ### 原因---- ...

  5. java框架篇---struts实现拦截器

    Struts2的拦截器和Servlet过滤器类似.在执行Action的execute方法之前,Struts2会首先执行在struts.xml中引用的拦截器,在执行完所有引用的拦截器的intercept ...

  6. Android ListView的使用(三)

    前两节关于ListView的,已经使用了ArrayAdapter,SimpleAdapter了,两个比较基本的适配器 这里来用一个用的最多的一个适配器BaseAdapter. 还是先上效果图.大概和微 ...

  7. poj3073

    比赛状态堪忧,笑看自己找不着北.. 把心态放好吧- - 反正窝从一開始就仅仅是为了多学习才上道的 至少已经从学习和智商上给窝带来了一些帮助 智商带不动,好辛苦----(>_<)---- 说 ...

  8. Sublime Text2/3怎样在Mac OSX中配置CTags插件

    参考地址: http://jingyan.baidu.com/article/48206aeafba820216ad6b3f5.html

  9. android中LayoutParams设置参数的理解

    1. 有这样的一个应用场景:有一个linearLayout控件在其中布局一个textView控件 首先,创建线性布局对象 LinearLayout layout = new LinearLayout( ...

  10. B2C和B2B之间有多大差距

    从产品应用的角度,我们团队经历了企图将B2C系统套用到B2B业务流程上的阶段,对于自营业务这还勉强可以实施,但对于外部用户的实施难度就太大了,用户体验也不好.这个过程中,我只关注了技术范畴的迭代速度. ...