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

最近在学习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();
      }
    }
}

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

(0)

相关推荐

  • java 发送带Basic Auth认证的http post请求实例代码

    构造http header private static final String URL = "url"; private static final String APP_KEY = "key"; private static final String SECRET_KEY = "secret"; /** * 构造Basic Auth认证头信息 * * @return */ private String getHeader() { String

  • Java利用HttpClient模拟POST表单操作应用及注意事项

    HttpClient使用post方法提交数据 源代码: 复制代码 代码如下: package post; import Java.io.IOException; import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commo

  • java通过模拟post方式提交表单实现图片上传功能实例

    本文实例讲述了java通过模拟post方式提交表单实现图片上传功能.分享给大家供大家参考,具体如下: 模拟表单html如下: <form action="up_result.jsp" method="post" enctype="multipart/form-data" name="form1" id="form1"> <label> <input type="tex

  • 解析Java的Spring框架的BeanPostProcessor发布处理器

    BeanPostProcessor 的接口定义,可以实现提供自己的实例化逻辑,依赖解析逻辑等,也可以以后在Spring容器实例化完毕,配置和初始化一个bean通过插入一个或多个的BeanPostProcessor实现一些自定义逻辑回调方法实现. 可以配置多个的BeanPostProcessor接口,控制这些的BeanPostProcessor接口,通过设置属性顺序执行顺序提供的BeanPostProcessor实现了Ordered接口. BeanPostProcessor可以对bean(或对象)

  • java网络编程中向指定URL发送GET POST请求示例

    复制代码 代码如下: import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLConnection;import jav

  • java发送get请求和post请求示例

    java向服务端发送GET和POST请求 复制代码 代码如下: package com.hongyuan.test; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.HttpURLConnection;import java.net.URL; public class HttpCl

  • Java模拟HTTP Get Post请求 轻松实现校园BBS自动回帖

    本文实例为大家分享了Java模拟HTTP Get Post请求,校园BBS自动回帖功能,供大家参考,具体内容如下 设计思路 找到帖子链接的集合,最后面数字变化, 就可以得到不同的帖子 防止帖子发表会又被删了的情况, 进行判断帖子是否存在 遍历这个集合, 对每个链接做回帖的POST请求 重难点 Note: 回帖需要用户登录信息 一种是利用Cookie 另一种是进行模拟登录 本文采用前者 代码 代码比较简单,注意事项是找到自己的Cookie,赋给String yourCookeie就可以直接运行 主

  • java发送http的get、post请求实现代码

    Http请求类 package wzh.Http; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; import java.util.List; import java.util.Map; public

  • JAVA POST与GET数据传递时中文乱码问题解决方法

    做了N年的java开发从没有自己写过一个网站,最近乱忙活弄了一个企业家宣传网站. 跟大家一样遇到了中文字符集乱码问题,为了大家能少走一些弯路,所以在此分享一下即简单又实用的解决方法. 1. POST 数据传递 接收页 复制代码 代码如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% request.setCharacterEnco

  • javasciprt下jquery函数$.post执行无响应的解决方法

    在编写javascirpt程序过程中,用$.post方法发送数据,若数据中字符含有'<',将导致$.post无法成功执行. 复制代码 代码如下: var jsonstr='{"value":"abcd<efg"}'; $.post( url, { "jsonstr": jsonstr }, function (data, status) { }); 需要将其转义后再使用,使用下面的transferredChars函数转义后,再传递数据

随机推荐