java跨服务器请求url获得数据
在项目中,有时需要通过请求远程服务器上的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获得数据的更多相关文章
- Java获取此次请求URL以及服务器根路径的方法
		http://www.jb51.net/article/71693.htm ********************************************** 本文介绍了Java获取此次请求 ... 
- ASP.NET、JAVA跨服务器远程上传文件(图片)的相关解决方案整合
		一.图片提交例: A端--提交图片 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string u ... 
- 解决使用webbrowser请求url时数据传递丢失问题
		问题: 使用“ this.webBrowser.Url = new Uri(webBrowserUrl);”方式请求Action(Java Web)并传递数据,在webBrowserUrl中携带的参数 ... 
- JSONP 跨域请求 - 获取JSON数据
		如何用原生方式使用JSONP? 下边这一DEMO实际上是JSONP的简单表现形式,在客户端声明回调函数之后,客户端通过script标签向服务器跨域请求数据,然后服务端返回相应的数据并动态执行回调函数. ... 
- 通过Fiddler监控Java应用发送请求及相应数据
		Fiddler可以很好的监控浏览器发送的各种请求及响应数据,对于JAVA程序默认情况下是无法监控的,但实际需求中需要监控JAVA程序发送HTTP请求及返回数据是否正确. Fiddler默认配置的监听端 ... 
- 请求Url返回数据较大,使结果分页获取
		首先创建了一个单元测试,如下项目视图: 分页结果映射类PageResult的编写: using System; using System.Collections.Generic; using Syst ... 
- Java模拟POST请求发送二进制数据
		在进行程序之间数据通信时我们有时候就需要自定义二进制格式,然后通过HTTP进行二进制数据交互.交互的示例代码如下: public static void main(String[] args) { S ... 
- java模拟post请求发送json数据
		import com.alibaba.fastjson.JSONObject; import org.apache.http.client.methods.CloseableHttpResponse; ... 
- java后端服务器读取excel将数据导入数据库
		使用的是easypoi,官网文档:http://easypoi.mydoc.io/ /** * 导入Excel文件 */ @PostMapping("/importTeacher" ... 
随机推荐
- SharePoint 计时器作业
			本文将介绍 SharePoint 2010 的默认计时器作业,即我们通常说的Timer服务.计时器作业在 SharePoint Server 的特定 Windows 服务中运行.计时器作业还是执行定时 ... 
- Azure 进阶攻略 | 上云后的系统,「门禁」制度又该如何实现?
			各位办公室白领们,不妨回想一下自己每天去公司上班时的一些细节. 为避免「闲杂人等」进入工作场所,我们需要证明自己是这家公司的员工才能进入,对吧!所有员工,无论所属部门或职位,都必须先证明自己身份,例如 ... 
- Python3爬虫04(其他例子,如处理获取网页的内容)
			#!/usr/bin/env python# -*- coding:utf-8 -*- import osimport reimport requestsfrom bs4 import Navigab ... 
- PHP:__get()、__set()、__isset()、__unset()、__call()、__callStatic()六个魔术方法
			哎呀呀,今天小仓鼠学到了魔术方法,简称魔法,哈哈哈哈,神经病啊~ 平时在面试的时候,也会遇到问魔术方法有哪些的问题哦!今天我们来了解一下下~ 1.__get() 形式: __get($objName) ... 
- Jmeter入门7 测试中使用到的几个定时器和逻辑控制器
			1 测试中提交数据有延时1min,所以查询数据是否提交成功要设置定时器. 固定定时器页面:单位是毫秒 [dinghanhua] 2 集合点.Synchronizing Timer 集合点编辑:集合用户 ... 
- DOM(十四):代理检测和事件处理(跨浏览器)
			一.检测 用于用户代理检测,检测范围包括浏览器引擎.平台.Windows.移动设备和游戏系统等 /* *用户代理检测脚本,检测范围包括浏览器引擎.平台.Windows.移动设备和游戏系统 */ var ... 
- POJ-2377 Bad Cowtractors---最大生成树
			题目链接: https://vjudge.net/problem/POJ-2377 题目大意: 给一个图,求最大生成树权值,如果不连通输出-1 思路: kruskal算法变形,sort按边从大到小排序 ... 
- 宝塔linux面板,修改root密码
			root,密码忘记了.但宝塔vps的密码没忘记... 翻完宝塔linux面板都没看到有修改系统root密码的选项,后来尝试定时任务shell,也没成功, 最终快绝望的时候,发现通过添加插件成功修改密码 ... 
- python 3+djanjo 2.0.7简单学习(一)
			1.安装django pip install django 我这里已经安装过了 整个目录结构如下: votes : migrations : __init__.py : admin.py : apps ... 
- mysql数值函数
			abs(x) -- 绝对值 abs(-10.9) = 10 format(x, d) -- 格式化千分位数值 format(1234567.456, 2) = 1,234,567.46 ceil(x) ... 
