当前位置:首页 » 安全设置 » javahttp请求网络设置

javahttp请求网络设置

发布时间: 2022-06-08 17:29:02

1. 如何在java中发起http和https请求

1.写http请求方法
[java] view plain

//处理http请求 requestUrl为请求地址 requestMethod请求方式,值为"GET"或"POST"
public static String httpRequest(String requestUrl,String requestMethod,String outputStr){
StringBuffer buffer=null;
try{
URL url=new URL(requestUrl);
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestMethod(requestMethod);
conn.connect();
//往服务器端写内容 也就是发起http请求需要带的参数
if(null!=outputStr){
OutputStream os=conn.getOutputStream();
os.write(outputStr.getBytes("utf-8"));
os.close();
}
//读取服务器端返回的内容
InputStream is=conn.getInputStream();
InputStreamReader isr=new InputStreamReader(is,"utf-8");
BufferedReader br=new BufferedReader(isr);
buffer=new StringBuffer();
String line=null;
while((line=br.readLine())!=null){
buffer.append(line);
}
}catch(Exception e){
e.printStackTrace();
}
return buffer.toString();
}
2.测试。
[java] view plain

public static void main(String[] args){
String s=httpRequest("http://www.qq.com","GET",null);
System.out.println(s);
}
输出结果为www.qq.com的源代码,说明请求成功。
注:1).第一个参数url需要写全地址,即前边的http必须写上,不能只写www.qq.com这样的。

2).第二个参数是请求方式,一般接口调用会给出URL和请求方式说明。
3).第三个参数是我们在发起请求的时候传递参数到所要请求的服务器,要传递的参数也要看接口文档确定格式,一般是封装成json或xml.
4).返回内容是String类,但是一般是有格式的json或者xml。
二:发起https请求。
1.https是对链接加了安全证书SSL的,如果服务器中没有相关链接的SSL证书,它就不能够信任那个链接,也就不会访问到了。所以我们第一步是自定义一个信任管理器。自要实现自带的X509TrustManager接口就可以了。
[java] view plain

import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.X509TrustManager;
public class MyX509TrustManager implements X509TrustManager {
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
// TODO Auto-generated method stub
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
// TODO Auto-generated method stub
}
@Override
public X509Certificate[] getAcceptedIssuers() {
// TODO Auto-generated method stub
return null;
}
}
注:1)需要的包都是java自带的,所以不用引入额外的包。
2.)可以看到里面的方法都是空的,当方法为空是默认为所有的链接都为安全,也就是所有的链接都能够访问到。当然这样有一定的安全风险,可以根据实际需要写入内容。

2.编写https请求方法。
[java] view plain

/*
* 处理https GET/POST请求
* 请求地址、请求方法、参数
* */
public static String httpsRequest(String requestUrl,String requestMethod,String outputStr){
StringBuffer buffer=null;
try{
//创建SSLContext
SSLContext sslContext=SSLContext.getInstance("SSL");
TrustManager[] tm={new MyX509TrustManager()};
//初始化
sslContext.init(null, tm, new java.security.SecureRandom());;
//获取SSLSocketFactory对象
SSLSocketFactory ssf=sslContext.getSocketFactory();
URL url=new URL(requestUrl);
HttpsURLConnection conn=(HttpsURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
conn.setRequestMethod(requestMethod);
//设置当前实例使用的SSLSoctetFactory
conn.setSSLSocketFactory(ssf);
conn.connect();
//往服务器端写内容
if(null!=outputStr){
OutputStream os=conn.getOutputStream();
os.write(outputStr.getBytes("utf-8"));
os.close();
}
//读取服务器端返回的内容
InputStream is=conn.getInputStream();
InputStreamReader isr=new InputStreamReader(is,"utf-8");
BufferedReader br=new BufferedReader(isr);
buffer=new StringBuffer();
String line=null;
while((line=br.readLine())!=null){
buffer.append(line);
}
}catch(Exception e){
e.printStackTrace();
}
return buffer.toString();
}
可见和http访问的方法类似,只是多了SSL的相关处理。
3.测试。先用http请求的方法访问,再用https的请求方法访问,进行对比。

http访问:
[java] view plain

public static void main(String[] args){
String s=httpRequest("https://kyfw.12306.cn/","GET",null);
System.out.println(s);
}
结果为:

https访问:

[java] view plain

public static void main(String[] args){
String s=httpsRequest("https://kyfw.12306.cn/","GET",null);
System.out.println(s);
}
结果为:

可见https的链接一定要进行SSL的验证或者过滤之后才能够访问。

三:https的另一种访问方式——导入服务端的安全证书。
1.下载需要访问的链接所需要的安全证书。https://kyfw.12306.cn/ 以这个网址为例。
1)在浏览器上访问https://kyfw.12306.cn/。

2)点击上图的那个打了×的锁查看证书。

3)选择复制到文件进行导出,我们把它导入到java项目所使用的jre的lib文件下的security文件夹中去,我的是这个路径。D:\Program Files (x86)\Java\jre8\lib\security

注:中间需要选导出格式,就选默认的就行,还需要命名,我命名的是12306.

2.打开cmd,进入到java项目所使用的jre的lib文件下的security目录。
3.在命令行输入 Keytool -import -alias 12306 -file 12306.cer -keystore cacerts
4.回车后会让输入口令,一般默认是changeit,输入时不显示,输入完直接按回车,会让确认是否信任该证书,输入y,就会提示导入成功。

5.导入成功后就能像请求http一样请求https了。

测试:
[java] view plain

public static void main(String[] args){
String s=httpRequest("https://kyfw.12306.cn/","GET",null);
System.out.println(s);
}
结果:
现在就可以用http的方法请求https了。
注:有时候这一步还是会出错,那可能是jre的版本不对,我们右键run as——run configurations,选择证书所在的jre之后再运行。

2. java 接受http请求

使用servlet


public class Test extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#HttpServlet()

*/

public Test() {

super();

// TODO Auto-generated constructor stub

}


/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//接收get请求

// 这里写你接收request请求后要处理的操作

}


/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//接收post请求

// 这里写你接收request请求后要处理的操作

}


}


3. 如何设置手机的java接入点,怎样进行http代理设置呢

GPRS设置: 1、选择 设置--配置设置--预设配置设置,更改为"个人配置"。 2、更改后返回配置设置菜单,选择"个人配置设置"。进入"个人帐号"选择"操作"--"新增"--"网络" (有网络存在就选择网络) 3、设置 帐号名称:cmwap 主页:(随便写一个,如: http://wap.tom.com ) 用户名:(不填) 密码:(不填) 使用首选接入点:选择"取消" 4、点选进入"接入点设置" 代理:已启动 代理地址:10.0.0.172 代理端口:不填(注意:这个不填80,彩信才填的,不过填80也没关系) 传输方式:分组数据(分组数据就是指GPRS) 进入传输方式设置: 分组数据接入点:cmwap 鉴权类型:普通 用户名:不填 密码:不填 OK!GPRS设置完成 彩信设置: 1、选择 设置--配置设置--预设配置设置,更改为"个人配置"。 2、更改后返回配置设置菜单,选择"个人配置设置"。进入"个人帐号"选择"操作"--"新增"--"彩信" (如果是多媒体信息就选择多媒体信息) 3、设置:帐号名称:彩信 服务器地址: http://mmsc.monternet.com 使用首选接入点:取消 4、接入点设置:代理:启动 代理地址:10.0.0.172 端口:80(一定要填) 传输方式:分组数据 5、传输方式设置:分组数据接入点:cmwap 鉴权类型:普通 用户名:(不填) 密码:(不填) OK!彩信设置也完成了 另外要注意的是: 只是这样设置的话只能用机器自带的浏览器上网,java软件都不能接入网络如QQ(接入时分组数据不存在),还需要Java软件接入网的设置。 Java软件接入网的设置: 1、设置--配置设置--选择"个人配置设置"。进入"个人帐号"选择"操作"--"新增"--"接入点"(有"接入点"存在就选择"接入点") 2、设置:帐号名称:接入点(随便写其它名称也行) 3、点选进入"接入点设置" 4、传输方式:分组数据 5、进入传输方式设置: 分组数据接入点:cmwap 鉴权类型:普通 用户名:不填 密码:不填 6、返回"个人帐号"选定"接入点"选择"操作"--"启动" 7、返回"配置设置"后选择"首选接入点"选择"接入点"(或者是你之前随便写其它名称) OK!java软件(QQ等)都可以接入网络了,保险期间再在“配置设置”中“将全部软件启动预设”

记得采纳啊

4. Java上网参数设置

GPRS、彩信、收发电子邮件及QQ上网
完整上网设置解决方法
设置GPRS步骤
步骤如下:设置—→配置设置—→个人配置设置—→操作—→新增—→网络
接下来对网络进行配置:
帐号名称:默认(我的网),可换成自己喜欢的名字
主页:
http://wap.monternet.com
用户名:(空)
密码:(空)
使用首选接入点:取消
接入点设置:
代理:启动
代理地址:
10.0.0.172
代理端口:
80
传输方式:分组数据
传输方式设置:
分组数据接入点:
cmwap
网络类型:
Ipv4
鉴权类型:普通
用户名:(空)
密码:(空)
这样,
GPRS
就设置好了
接下来设置彩信
首先要新增
步骤如下:设置—→配置设置—→个人配置设置—→操作—→新增—→彩信
接下来对彩信进行配置:
帐号名称:默认(彩信),可换成自己喜欢的名字
服务器地:
http://mmsc.monternet.com
(注意:从http的h开始,要不然设置就白费了)
使用首选接入点:取消
接入点设置:
代理:启动
代理地址:
10.0.0.172
代理端口:
80
传输方式:分组数据
传输方式设置:
分组数据接入点:
cmwap
网络类型:
Ipv4
鉴权类型:普通
用户名:(空)
密码:(空)
OK
,彩信也设置好了
然后回到:设置—→配置设置—→预设配置设置,选择:个人配置
设置—→配置设置—→为全部应用软件启动预设(有提示出现,选择:确认)

5. Java怎么设置代理来访问网络

你的问题应该是:在java中通过编程设置代理服务器并访问网络,现在作答如下:

1,讲解一下基础知识:
HTTP:是应用层协议,是基于传输层协议的。
TCP: 是传输层协议,是基于网络层协议的。
IP: 是网络层协议。
一个TCP的连接要进行三次握手(就像转户口一样,不详说),HTTP只是一个应用协议,也就是相当于一个自定义协议,即其没有对底层的传输方式进行干涉,只是对数据内容格式进行了定义。

2,我们再说说HTTP代理,从上可以理解,HTTP代理服务器就是这样一台机器:你把所有的HTTP请求都发到这个 HTTP代理服务器,然后这个HTTP代理服务器请求你要访问的最终地址,把响应回传给你。这里还要注意它代理的是HTTP协议,而HTTP又是基于 TCP的,也就是说这个服务器代理的是指定HTTP内容格式的TCP连接。再说下去也没意思了,看以下代码:
//以下地址是代理服务器的地址
Socket socket = new Socket("10.1.2.188", 80);
//写与的内容就是遵循HTTP请求协议格式的内容,请求网络
socket.getOutputStream().write(new String("GET http://www..com/ HTTP/1.1\r\n\r\n").getBytes());
byte[] bs = new byte[1024];
InputStream is = socket.getInputStream();
int i;
while ((i = is.read(bs)) > 0) {
System.out.println(new String(bs, 0, i));
}
is.close();
3,当然在Java中,有Proxy代理上网的使用,此时使用URL(HTTP)就不涉及Socket(TCP)了,看如下代码
//设置代理
System.setProperty("http.proxySet", "true");
System.setProperty("http.proxyHost", "10.1.2.188");
System.setProperty("http.proxyPort", "80");

//直接访问目的地址
URL url = new URL("http://www..com");
URLConnection con = url.openConnection();
InputStreamReader isr = new InputStreamReader(con.getInputStream());
char[] cs = new char[1024];
int i = 0;
while ((i = isr.read(cs)) > 0) {
System.out.println(new String(cs, 0, i));
}
isr.close();

6. java使用HttpResponse请求其他系统的接口,对应Postman的设置

首先弄懂测试的需求,比如接口功能测试需求是什么(什么样的输入参数,返回什么样的输出)、接口性能测试需求是什么(最大支持多少并发访问,后台服务器资源配置极限是多少等等)
然后选择一款接口测试工具(一般推荐 POSTMAN JMETER等等),也可以自己开发接口工具。
编写接口功能测试和性能测试的用例(这个和一般的黑盒测试用例差不多,预置条件,测试步骤,预期结果)
使用测试工具或者脚本,执行测试用例。含提交BUG,跟踪BUG闭环等等。
分析测试结果,出具测试报告。
PS:接口的功能测试很简单,一般是访问的URL,带什么参数,然后什么加密方式,然后看返回值符不符合预期就可以了,把各种正常异常情况考虑到。接口性能测试的话除了要设置集合点并发访问后台接口,然后还要在后台服务器加监控,以便于检测系统资源,一般通用的监控指标CPU 内存 网络 等等。当然具体也要看你要测试什么样的接口,弄懂接口的协议再测试。希望能帮到你。

7. java中如何设置HTTP协议的头信息(header)

首先,我们先看一下http的头信息到底是什么:
HTTP(HyperTextTransferProtocol) 即超文本传输协议,目前网页传输的的通用协议。HTTP协议采用了请求/响应模型,浏览器或其他客户端发出请求,服务器给与响应。就整个网络资源传输而 言,包括message-header和message-body两部分。首先传递message- header,即http header消息。http header 消息通常被分为4个部分: general header, request header, response header, entity header。但是这种分法就理解而言,感觉界限不太明确,根据日常使用,大体分为Request和Response两部分。
在通常的servlet/jsp应用中,我们只是从http的header中取得信息,如果要设置信息,需要用到HttpClient,具体的设置方法如下:
HttpResponse response = null;
HttpGet get = new HttpGet(url);
get.addHeader("Accept", "text/html");
get.addHeader("Accept-Charset", "utf-8");
get.addHeader("Accept-Encoding", "gzip");
get.addHeader("Accept-Language", "en-US,en");
get.addHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.160 Safari/537.22");
response = client.execute(get);
HttpEntity entity = response.getEntity();
Header header = entity.getContentEncoding();
if (header != null)
{
HeaderElement[] codecs = header.getElements();
for (int i = 0; i < codecs.length; i++)
{
if (codecs[i].getName().equalsIgnoreCase("gzip"))
{
response.setEntity(new GzipDecompressingEntity(entity));
}
}
}
return response;
其中,client为一个HttpClient的实力,创建方式如:
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(new Scheme("http", 80, PlainSocketFactory.getSocketFactory()));
schemeRegistry.register(new Scheme("https", 443, SSLSocketFactory.getSocketFactory()));
cm = new (schemeRegistry);
cm.setMaxTotal(200);
cm.setDefaultMaxPerRoute(2);
HttpHost googleResearch = new HttpHost("research.google.com", 80);
HttpHost wikipediaEn = new HttpHost("en.wikipedia.org", 80);
cm.setMaxPerRoute(new HttpRoute(googleResearch), 30);
cm.setMaxPerRoute(new HttpRoute(wikipediaEn), 50);
DefaultHttpClient client = new DefaultHttpClient(cm);

8. 如何使用HttpClient包实现JAVA发起HTTP请求

  • HttpClient可以发起Http请求.

比如要获取某页面, 那么需要分析, 是POST请求还是GET请求.

分析请求的标题头 ,参数 ,cookie等,

所以 , 分析页面请求, 才是关键, 分析好了, 直接按套路,设置标头, 设置参数, 设置cookie, 然后提交POST/GET就可以了

推荐win10自带的EDGE浏览器, 按F12弹出开发窗口, 里面详细记录了http请求

9. java双网卡怎么做http访问

用双网卡同时访问内外网暂时没有很完美的解决办法,因为存在路由冲突,毕竟有两个网关地址,现在可以试试下面的办法:
先来解决双网卡冲突的问题。可以通过改变路由地址表搞定。以你的单位用机为例,机器有两块网卡,接到两台路由器上:
内部网地址设置为192.168.1.110,子网掩码:255.255.255.0,网关:192.168.1.1
办公网地址:10.94.12.123,子网掩码:255.255.255.0,网关:10.94.12.254
如果按正常的设置方法设置每块网卡的IP地址和网关,再cmd下使用route print查看时会看到以0.0.0.0 0.0.0.0 开头的两个东西,即指向0.0.0.0的有两个网关,这样就会出现路由冲突,两个网络的访问存在困难。要实现同时访问两个网络就要用到route命令

10. 手机Java设置网络

大部分机型网络设置
1)在主菜单 -> 手机设定 -> 连接(遥杆往右移4下) -> 互联网设定 -> 互联网模式 -> 添加新模式
2)名称:自定义(如:移动梦网)
3)连接方式-添加新帐号-分组数据-名称:(如gprs)
4)APN(接入点名称):cmwap 或cmnet
5)用户名称:不填 密码:不填 然后储存
6)然后在互联网模式选定 移动梦网 按-更多-设定
7)连接方式:选择刚才添加的移动梦网
8)互联网模式:wap,使用代理选择是
9)代理址:010.000.000.172
10)安全设定:关闭
用户名称:不填
密码:不填 然后储存
11)最后再在互联网模式选定 中国移动 按-更多-高级-更改主页
12)名称:随便写
13)网址:wap.monternet.com

UIQ手机上网设置
菜单 -> 工具 -> 控制面板 -> 连接 -> 互联网帐号 -> 新建帐户 ->数据
帐号名称:GPRS
地址: cmwap
选择更多
代理: “ 使用代理服务器 ” (选中,前面打勾)
代理服务器地址:010.000.000.172
代理服务器端口:80
注意:这时会出现一段提示语: “ 如果您要使用GPRS连接互联网或发送和接收电子邮件,则必须将其添加 至组群帐户。是否要立即向组群帐户添加GPRS? ” 选择 “ 是 ”
还会出现一个 “ 添加至组群帐户:互联网? ” 选保存,完成