`
rain_2372
  • 浏览: 684401 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JAVA HTTP 请求的POST提交

    博客分类:
  • java
阅读更多
public class HttpPostUtils {
   
    public static String httpPost(String urlAddress,Map<String, String> paramMap){
        if(paramMap==null){
            paramMap = new HashMap<String, String>();
        }
        String [] params = new String[paramMap.size()];
        int i = 0;
        for(String paramKey:paramMap.keySet()){
            String param = paramKey+"="+paramMap.get(paramKey);
            params[i] = param;
            i++;
        }
        return httpPost(urlAddress, params);
    }
   
    public static String httpPost(String urlAddress,List<String> paramList){
        if(paramList==null){
            paramList = new ArrayList<String>();
        }
        return httpPost(urlAddress, paramList.toArray(new String[0]));
    }
   
    public static String httpPost(String urlAddress,String []params){
        URL url = null;
        HttpURLConnection con  =null;
        BufferedReader in = null;
        StringBuffer result = new StringBuffer();
        try {
            url = new URL(urlAddress);
            con  = (HttpURLConnection) url.openConnection();
            con.setUseCaches(false);
            con.setDoOutput(true);
            con.setRequestMethod("POST");
            String paramsTemp = "";
            for(String param:params){
                if(param!=null&&!"".equals(param.trim())){
                    paramsTemp+="&"+param;
                }
            }
            byte[] b = paramsTemp.getBytes();
            con.getOutputStream().write(b, 0, b.length);
            con.getOutputStream().flush();
            con.getOutputStream().close();
            in = new BufferedReader(new InputStreamReader(con.getInputStream()));
            while (true) {
              String line = in.readLine();
              if (line == null) {
                break;
              }
              else {
                  result.append(line);
              }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            try {
                if(in!=null){
                    in.close();
                }
                if(con!=null){
                    con.disconnect();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return result.toString();
    }
}


ava.io.IOException: Server returned HTTP response code: 500 for URL: http://physics.whu.edu.cn/show.asp?id=278

java.io.IOException: Server returned HTTP response code: 403 for URL

但是自己却可以用浏览器访问,发现可能是服务器对我们这种java程序屏蔽了。

因为服务器的安全设置不接受Java程序作为客户端访问,解决方案是设置客户端的User Agent

url = new URL("http://physics.whu.edu.cn/show.asp?id=278");
            HttpURLConnection connection = (HttpURLConnection) url.
                openConnection();
            connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");

这样就可以访问了。
分享到:
评论
1 楼 haoxinren 2014-07-19  
String param = paramKey+"="+paramMap.get(paramMap); 写错了 应该是String param = paramKey+"="+paramMap.get(paramKey);

相关推荐

    java中main方法发送httpPost请求

    在Java编程中,HTTP POST请求通常用于向服务器发送数据,比如在登录、注册或提交表单等场景。这里我们将深入探讨如何在Java的main方法中实现这个功能,以及相关的HTTP请求和响应处理。 首先,Java中发送HTTP POST...

    java发起http请求提交表单

    本文将详细介绍如何使用Java语言来构建一个可以提交表单数据的HTTP POST请求。此方法通常用于向服务器发送数据,例如用户提交的表单信息。 #### 核心知识点 1. **构建表单HTML字符串** 2. **使用Java模拟HTTP POST...

    java后台实现 get post 提交.zip

    在Java后端开发中,GET和POST是两种最常见的HTTP请求方法,它们用于客户端与服务器之间的数据交互。了解如何在Java中实现这两种请求是至关重要的,尤其是对于构建Web应用程序。本资料"java后台实现 get post 提交....

    java发送http/https请求(get/post)Demo,亲测可用

    接下来,我们看POST请求,它用于向服务器提交数据,例如JSON格式。POST请求的参数通常在请求体中。以下是一个使用`HttpURLConnection`发送JSON的示例: ```java import java.io.OutputStream; import java.net....

    Java后端HttpClient Post提交文件流 及服务端接收文件流

    HttpClient Post提交多文件及多个普通参数,已经封装成工具类。 需传入 要请求的url 普通参数map 例 map.put("param1","张三"); 需要传入的文件流map 其中key为文件名 服务端接收无乱码。

    java实现get请求post请求,文件传输

    java实现get请求post请求,文件传输 /** * 发送https请求 * @param requestUrl 请求地址 * @param requestMethod 请求方式(GET、POST) * @param outputStr 提交的数据 * @return 返回微信服务器响应的信息 ...

    Java 模拟Ajax POST GET 提交代码

    Java 模拟Ajax POST GET 提交代码,实测很好用。

    java后台请求http并保持Session

    POST方法用于向服务器发送数据,如表单提交,参数在请求体中,不显示在URL上,且数据量无限制。 1. **GET请求**: - 使用`java.net.URL`和`java.net.HttpURLConnection`类创建GET请求。首先,构造URL对象,然后...

    HttpClient发送http请求(post和get)需要的jar包+内符java代码案例+注解详解

    - **POST请求**:用于向服务器提交数据,常用于表单提交或上传文件。POST请求的数据包含在请求体中,对数据大小无限制,比GET更安全,但响应速度相对较慢。 2. **HttpClient使用**:使用HttpClient发送HTTP请求...

    如何用selenium封装post参数提交示例

    在描述中提到的,我们将探讨如何使用Selenium来封装POST参数并提交,以获取异步请求返回的JSON对象值。 首先,理解Selenium的基本结构是必要的。Selenium通常包含WebDriver接口,它提供了一种方式来控制浏览器,并...

    java发http请求(post&get)

    本篇文章将详细介绍如何使用Java实现POST和GET两种HTTP请求方法。 首先,GET请求是最基础的HTTP请求方式,通常用于获取资源。在Java中,我们可以使用`java.net.HttpURLConnection`类来实现GET请求。以下是一个简单...

    javahttp使用post进行提交数据

    总结来说,使用Java和Android进行HTTP POST提交数据涉及以下步骤: 1. 创建HTTP连接对象,设置请求方法为POST。 2. 设置请求头,如Content-Type(通常为"application/x-www-form-urlencoded")。 3. 编写并发送请求...

    Java发送HTTP请求GET/POST测试

    在Java编程语言中,发送HTTP请求是常见的网络通信任务,主要涉及HTTP协议的GET和POST方法。本项目提供了一个完整的工程实例,可以帮助开发者理解和实践如何在Java中实现这两种请求方式。下面将详细介绍这两个方法...

    java http post client server

    客户端方面,Java提供了`HttpURLConnection`类,可以用来发送HTTP POST请求。客户端的实现涉及以下步骤: 1. 创建URL对象:`new URL(urlString)`,其中urlString是服务器地址。 2. 打开连接:`URLConnection ...

    java发送JSON格式的http通讯的post请求

    HTTP POST请求用于向服务器提交数据,而JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。本篇文章将深入探讨如何在Java中实现这一功能。 首先,我们...

    java后台用GET POST方式提交封装类

    在Java后台开发中,HTTP请求是与服务器交互的基础,主要包括GET和POST两种主要方式。本文将深入探讨如何在Java中创建一个封装类来处理这两种请求,同时支持多参数和Cookie的处理。 首先,GET和POST是HTTP协议中的两...

    java http 发送 put delete post get请求

    本篇将详细解释如何使用Java发送PUT、DELETE、POST和GET这四种主要的HTTP请求。 PUT请求常用于更新已有资源,它的特点是替换目标URL指定的整个资源。在Java中,可以使用HttpURLConnection或Apache HttpClient库来...

    java_http_post.zip_java http post_java http协议post_java post

    POST方法是HTTP协议中的一个方法,用于向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中,POST请求可能会导致新的资源的建立和/或已有资源的修改。 在Java中,我们通常使用...

Global site tag (gtag.js) - Google Analytics