首页 > 编程知识 正文

java代理发送http请求,java代理发送请求

时间:2023-05-04 21:36:03 阅读:178969 作者:551

与通过代理发送http post请求、最近测试外部接口并直接调用不同,Java转发代理用例和curl通过转发代理调用接口。 然后,需要在服务器上进行测试。 我还找了几个方法。 现在总结一下。

Java向代理发送了设置java的启动参数

http代理-Dhttp.proxyHost=代理ip -Dhttp.proxyPort=代理ip端口

https代理-Dhttps.proxyHost=代理ip -Dhttps.proxyPort=代理ip端口

在java代码初始化时设置环境变量

http代理

system.set property (' http.proxy host ','代理ip ' ); system.set property (' http.proxy port ','代理ip端口`'); https代理

system.set property (' https.proxy host ','代理ip ' ); system.set property (' https.proxy port ','代理ip端口`');在java 代码中设置使用代理

URL URL=newurl (' https://网址); proxy proxy=new proxy (proxy.type.direct.http,new InetSocketAddress ),3128 ); httpurlconnectionconn=(httpurl connection ) URL.openconnection ) proxy;如果操作系统已经配置好代理,可以直接使用

system.set property (' Java.net.usesystemproxies ',' true ' ); 当然,也可以在启动时添加- DJ ava.net.usesystemproxies=true。 如果某些网站不需要使用代理,可以单独进行设置。 示例:-d http.nonproxyhosts=' www.hong xuejing.com|localhost ' http post代理publicjsonobjecthttppost (string URL,jsonon JSONObject jsonResult=null; http post http post=new http post (URL; htphosttarget=newhttphost (' QA.chetong.net/ai loss/getailosspageurl ',8080,' http ' ); httphostproxy=newhttphost (' 10.1.200.95 ',3128,' http ' ); //设置请求和传输超时时间requestconfigrequestconfig=request config.custom (.setsockettimeout (2000 ).setconnecttimeout ) ) try { if (空)!=JSONparam(//解决中文乱码问题的stringentityentity=new string entity ) JSONparam.tostring )、' utf-8 ' ); entity.setcontentencoding (utf-8 ); entity.set content type (application/JSON ); HTPpost.setentity(entity; } closeablehttpresponseresult=http client.execute (target,httpPost ); //请求发送成功,响应if(result.getstatusline ).getStatusCode )==http status.sc _ ok { string str=' '; try { //从服务器返回的json字符串数据str=entity utils.tostring (result.get entity )、' utf-8 ' );

// 把json字符串转换成json对象 jsonResult = JSONObject.parseObject(str); } catch (Exception e) { log.error("post请求提交失败:" + url, e); } } } catch (IOException e) { log.error("post请求提交失败:" + url, e); System.out.println(e); } finally { httpPost.releaseConnection(); } return jsonResult; }//测试main方法public static void main(String[] args) { String url = ""; String json = ""; HttpClientUtil httpClient = new HttpClientUtil(); JSONObject jsonObject = httpClient.httpPost(url,json);} curl正向代理 一、代理服务器分类:

我们比较常用、支持http(s)协议代理主要分为两大类:http代理和socks代理,见下表:

大类小类子类描述http代理http代理 https代理透明代理http服务器知道浏览器端使用了代理,并能获取浏览器端原始IP;匿名代理http服务器知道浏览器端使用了代理,但无法获取浏览器端原始IP;高匿名代理http服务器不知道浏览器端使用了代理,且无法获取浏览器端原始IP;SOCKS代理SOCKS4被称为全能代 理,支持http 和其他协议只支持TCP应用;SOCKS4A支持TCP应用;支持服务器端域名解析;SOCKS5支持TCP和UDP应用;支持服务器端域名解析; 支持多种身份验证;支持IPV6;二、Linux curl命令代理设置参数:

linux curl命令可以使用下面参数设置http(s)代理、socks代理,已经设置它们的用户名、密码以及认证方式:

参数用法-x host:port
-x [protocol://[user:pwd@]host[:port]
–proxy [protocol://[user:pwd@]host[:port]使用HTTP代理访问;如果未指定端口,默认使用8080端口;
protocol默认为http_proxy,其他可能的值包括:
http_proxy、HTTPS_PROXY、socks4、socks4a、socks5;
如:
–proxy 8.8.8.8:8080;
-x “http_proxy://aiezu:123@aiezu.com:80”–socks4 <host[:port]>
–socks4a <host[:port]>
–socks5 <host[:port]>使用SOCKS4代理;
使用SOCKS4A代理;
使用SOCKS5代理;
此参数会覆盖“-x”参数;–proxy-anyauth
–proxy-basic
–proxy-diges
–proxy-negotiate
–proxy-ntlm代理认证方式,参考:
–anyauth
–basic
–diges
–negotiate
–ntlm-U user:password
–proxy-user user:password设置代理的用户名和密码;三、Linux curl命令设置代理举例: 1、linux curl命令设置http代理: # 指定http代理IP和端口curl -x 113.185.19.192:80 http://aiezu.com/test.phpcurl --proxy 113.185.19.192:80 http://aiezu.com/test.php #指定为http代理curl -x http_proxy://113.185.19.192:80 http://aiezu.com/test.php #指定为https代理curl -x HTTPS_PROXY://113.185.19.192:80 http://aiezu.com/test.php #指定代理用户名和密码,basic认证方式curl -x aiezu:123456@113.185.19.192:80 http://aiezu.com/test.phpcurl -x 113.185.19.192:80 -U aiezu:123456 http://aiezu.com/test.phpcurl -x 113.185.19.192:80 --proxy-user aiezu:123456 http://aiezu.com/test.php #指定代理用户名和密码,ntlm认证方式curl -x 113.185.19.192:80 -U aiezu:123456 --proxy-ntlm http://aiezu.com/test.php #指定代理协议、用户名和密码,basic认证方式curl -x http_proxy://aiezu:123456@113.185.19.192:80 http://aiezu.com/test.php 2、Linux curl命令设置socks代理: #使用socks4代理,无需认证方式curl --socks4 122.192.32.76:7280 http://aiezu.com/test.phpcurl -x socks4://122.192.32.76:7280 http://aiezu.com/test.php #使用socks4a代理,无需认证方式curl --socks4a 122.192.32.76:7280 http://aiezu.com/test.phpcurl -x socks4a://122.192.32.76:7280 http://aiezu.com/test.php #使用socks5代理,basic认证方式curl --socks5 122.192.32.76:7280 -U aiezu:123456 http://aiezu.com/test.phpcurl -x socks5://aiezu:123456@122.192.32.76:7280 http://aiezu.com/test.php #使用socks5代理,basic认证方式,ntlm认证方式curl -x socks5://aiezu:123456@122.192.32.76:7280 --proxy-ntlm http://aiezu.com/test.php curl 设置代理post方式

curl -H "Content-Type: application/json" -X POST -x http_proxy://代理ip:端口 请求地址

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。