详解java中通过post方式访问后台服务器

所属分类: 软件编程 / java 阅读数: 17
收藏 0 赞 0 分享

最近在学习java中通过post方式访问后台服务器,那么今天也算个学习笔记吧!

首先,上代码:

Runnable payRunnable = new Runnable()  
      { 
        @Override 
        public void run()  
        { 
          try 
          {   
            HashMap<String, String> payParamMap = new HashMap<String, String>(); 
            payParamMap.put("canshu" ,"woshicanshu" ); 
            String payParamStr = XmlUtils.toXml(payParamMap);//转换成xml格式 
             
            String resultStr = Utils.httpPost(UrlString, payParamStr);//调用访问函数 
             
            //<span style="font-family: Arial, Helvetica, sans-serif;">resultStr 就是访问所得到的返回值 </span> 
          } 
          catch(Exception e) 
          { 
            e.printStackTrace(); 
          } 
        } 
      }; 
      // 必须异步调用 
      Thread payThread = new Thread(payRunnable); 
      payThread.start(); 

其次,上代码:

public class Utils { 
  private static final String TAG = "woshiTag"; 
 
  public static String httpPost(String url, String entity) { 
    if (url == null || url.length() == 0) { 
      Log.e(TAG, "httpPost, url is null"); 
      return null; 
    } 
     
    HttpClient httpClient = getNewHttpClient(); 
     
    HttpPost httpPost = new HttpPost(url); 
     
    try { 
      httpPost.setEntity(new StringEntity(entity, HTTP.UTF_8)); 
      httpPost.setHeader("Accept", "application/json"); 
      httpPost.setHeader("Content-type", "application/json"); 
       
      HttpResponse resp = httpClient.execute(httpPost); 
      if (resp.getStatusLine().getStatusCode() != HttpStatus.SC_OK) { 
        Log.e(TAG, "httpGet fail, status code = " + resp.getStatusLine().getStatusCode()); 
        return null; 
      } 
 
      return new String(EntityUtils.toByteArray(resp.getEntity())); 
    } catch (Exception e) { 
      Log.e(TAG, "httpPost exception, e = " + e.getMessage()); 
      e.printStackTrace(); 
      return null; 
    } 
  } 
  private static HttpClient getNewHttpClient() {  
      try {  
        KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());  
        trustStore.load(null, null);  
 
        SSLSocketFactory sf = new SSLSocketFactoryEx(trustStore);  
        sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);  
 
        HttpParams params = new BasicHttpParams();  
        HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);  
        HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);  
 
        SchemeRegistry registry = new SchemeRegistry();  
        registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));  
        registry.register(new Scheme("https", sf, 443));  
 
        ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry);  
 
        return new DefaultHttpClient(ccm, params);  
      } catch (Exception e) {  
        return new DefaultHttpClient();  
      }  
    } 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

Collections工具类_动力节点Java学院整理

Collections工具类提供了大量针对Collection/Map的操作。这篇文章主要介绍了Collections工具类_动力节点Java学院整理,需要的朋友可以参考下
收藏 0 赞 0 分享

SpringMVC集成Swagger实例代码

本篇文章主要介绍了SpringMVC集成Swagger实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

十大常见Java String问题_动力节点Java学院整理

本文介绍Java中关于String最常见的10个问题,需要的朋友参考下吧
收藏 0 赞 0 分享

Java微信公众平台开发(13) 微信JSSDK中Config配置

这篇文章主要为大家详细介绍了Java微信公众平台开发第十三步,微信JSSDK中Config配置,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Java实现一个达达租车系统的步骤详解

这篇文章主要给大家介绍了利用Java实现一个达达租车系统的步骤,文中给出了详细的实现思路和示例代码,并在文末给出了完整的源码供大家学习下载,需要的朋友可以参考借鉴,下面来一起看看吧。
收藏 0 赞 0 分享

Java微信公众平台开发(14) 微信web开发者工具使用

这篇文章主要为大家详细介绍了Java微信公众平台开发第十四步,微信web开发者工具的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Spring Boot整合RabbitMQ实例(Topic模式)

Topic Exchange 转发消息主要是根据通配符。接下来通过本文给大家分享Spring Boot整合RabbitMQ实例(Topic模式),需要的朋友参考下吧
收藏 0 赞 0 分享

Java微信公众平台开发(15) 微信JSSDK的使用

这篇文章主要为大家详细介绍了Java微信公众平台开发第十五步,微信JSSDK的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

java多线程的同步方法实例代码

这篇文章主要介绍了 java多线程的同步方法实例代码的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

spring boot整合RabbitMQ实例详解(Fanout模式)

这篇文章主要介绍了spring boot整合RabbitMQ的实例讲解(Fanout模式),非常不错,具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多