在项目中,有时需要通过请求远程服务器上的url获取数据(前提是程序所在服务器可以和url服务器ping成功),

用java在后台发送请求时,用到了java.net.URL, java.net.URLConnection,

以下是分别用post和get方式请求url的简单工具类实现:

 import java.io.BufferedReader;
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 class CallWebPage {
/**
* 用get方式连接url
* @param urlString url路径
* @param pdata url参数
* @return 从url获得的数据
*/
public static String CallWebPageGet(String urlString,String pdata) {
String result="";
PrintWriter out = null;
BufferedReader in = null;
URL url=null;
try {
url = new URL(urlString+"?"+pdata);//用url路径以及所用参数创建URL实例类
URLConnection connect = url.openConnection();//创建连接
connect.setRequestProperty("content-type","application/x-www-form-urlencoded;charset=utf-8");//设置请求header的属性--请求内容类型
connect.setRequestProperty("method","GET");//设置请求header的属性值--请求方式
// 建立实际的连接
connect.connect(); //建立与url所在服务器的连接
// 获取所有响应头字段
Map<String, List<String>> map = connect.getHeaderFields();
// 遍历所有的响应头字段
for (String key : map.keySet()) {
System.out.println(key + "--->" + map.get(key));
}
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(connect.getInputStream()));
String line="";
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} return result;
}
/**
* 用gpost方式连接url
* @param urlString url路径
* @param pdata url参数
* @return 从url获得的数据
*/
public static String CallWebPagePost(String urlString,String pdata) {
String result="";
PrintWriter out = null;
BufferedReader in = null;
URL url=null;
try {
url = new URL(urlString);
URLConnection connect = url.openConnection();
connect.setRequestProperty("content-type","application/x-www-form-urlencoded;charset=utf-8");
connect.setRequestProperty("method","POST");
byte[] bytes= pdata.getBytes("utf-8") ;
connect.setDoOutput(true);
connect.setDoInput(true); out = new PrintWriter(connect.getOutputStream());
// 发送请求参数
out.print(pdata);
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(connect.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} return result;
}
}

java跨服务器请求url获得数据的更多相关文章

  1. Java获取此次请求URL以及服务器根路径的方法

    http://www.jb51.net/article/71693.htm ********************************************** 本文介绍了Java获取此次请求 ...

  2. ASP.NET、JAVA跨服务器远程上传文件(图片)的相关解决方案整合

    一.图片提交例: A端--提交图片 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string u ...

  3. 解决使用webbrowser请求url时数据传递丢失问题

    问题: 使用“ this.webBrowser.Url = new Uri(webBrowserUrl);”方式请求Action(Java Web)并传递数据,在webBrowserUrl中携带的参数 ...

  4. JSONP 跨域请求 - 获取JSON数据

    如何用原生方式使用JSONP? 下边这一DEMO实际上是JSONP的简单表现形式,在客户端声明回调函数之后,客户端通过script标签向服务器跨域请求数据,然后服务端返回相应的数据并动态执行回调函数. ...

  5. 通过Fiddler监控Java应用发送请求及相应数据

    Fiddler可以很好的监控浏览器发送的各种请求及响应数据,对于JAVA程序默认情况下是无法监控的,但实际需求中需要监控JAVA程序发送HTTP请求及返回数据是否正确. Fiddler默认配置的监听端 ...

  6. 请求Url返回数据较大,使结果分页获取

    首先创建了一个单元测试,如下项目视图: 分页结果映射类PageResult的编写: using System; using System.Collections.Generic; using Syst ...

  7. Java模拟POST请求发送二进制数据

    在进行程序之间数据通信时我们有时候就需要自定义二进制格式,然后通过HTTP进行二进制数据交互.交互的示例代码如下: public static void main(String[] args) { S ...

  8. java模拟post请求发送json数据

    import com.alibaba.fastjson.JSONObject; import org.apache.http.client.methods.CloseableHttpResponse; ...

  9. java后端服务器读取excel将数据导入数据库

    使用的是easypoi,官网文档:http://easypoi.mydoc.io/ /** * 导入Excel文件 */ @PostMapping("/importTeacher" ...

随机推荐

  1. SQL中的聚合函数

    聚合函数是对一组值执行计算并返回单一的值的函数,它经常与SELECT语句的GROUP BY子句一同使用,SQL SERVER 中具体的聚合函数如下:1. AVG 返回指定组中的平均值,空值被忽略. 例 ...

  2. [转]Windows 下常用盗版软件的替代免费软件列表

    当您看完这篇文章,我相信您完全可以把您 Windows 系统里安装的盗版软件清理干净而不影响您的任何工作.如果您仍然希望并且喜欢.享受做一个盗版软件用户的话,那也没有办法,但是请您记住,非常非常重要的 ...

  3. php中的curl_multi的应用(php多进程)

    相信许多人对PHP手册中语焉不详的curl_multi一族的函数头疼不已,它们文档少,给的例子 更是简单的让你无从借鉴,我也曾经找了许多网页,都没见一个完整的应用例子. curl_multi_add_ ...

  4. HTML5开发,背后的事情你知道吗?

    现在的H5越来越受到企业或者是开发者的一个大力的追捧,已经成为网络推广必不可少的一个使用的工具,相信还有很多朋友现在都不知道H5是个什么东西,本文将为大家讲的是关于H5一些分类的问题,让你进一步的去学 ...

  5. ubuntu linux安装octave

    sudo apt-add-repository ppa:octave/stable sudo apt-get update sudo apt-get install octave 安装完成后,在终端中 ...

  6. Bonita portal 源码编译(未完成)

    首先下载源代码 https://github.com/bonitasoft/bonita-portal-js 以下内容为Github 的安装教程包含我安装过程中遇到的问题.并加以修正 Bonita p ...

  7. Unity3D转UE4指南

    坐标: Unity3D X - left, right Y - up, down Z - forwards, backwards Unreal Engine4 X - forwards, backwa ...

  8. 课程设计__继承与派生,重载<<

    ///继承与派生 #include <iostream> using namespace std; class Point { public: Point (,):x(a),y(b) {} ...

  9. EF 连接 mysq l数据库 code first模式 的实践

    准备工作: 1.下载vs2015 2.下载mysql2017 3.安装 开始: 1.创建 控制台文件 2.添加引用 Mysql.Data , Mysql.Data.Entity.EF6,Mysql.w ...

  10. Firefox 修改User Agent

    Android 版 Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML ...