包含java翻墙请求的词条

博主:adminadmin 2023-01-10 05:30:09 793

本篇文章给大家谈谈java翻墙请求,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

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

1.写http请求方法

[java] view plain copy

//处理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();

}

java http请求

可能是这个网站做了权限校验啥的吧,你在浏览器是先登录以后再请求的这个接口,但是你的JAVA客户端没有做登录,直接请求,被认为是非法请求,所以就不给你返回数据了

求解java怎样发送https请求

使用httpClient可以发送,具体的可以参考下面的代码

SSLClient类,继承至HttpClient

import java.security.cert.CertificateException;

import java.security.cert.X509Certificate;

import javax.net.ssl.SSLContext;

import javax.net.ssl.TrustManager;

import javax.net.ssl.X509TrustManager;

import org.apache.http.conn.ClientConnectionManager;

import org.apache.http.conn.scheme.Scheme;

import org.apache.http.conn.scheme.SchemeRegistry;

import org.apache.http.conn.ssl.SSLSocketFactory;

import org.apache.http.impl.client.DefaultHttpClient;

//用于进行Https请求的HttpClient

public class SSLClient extends DefaultHttpClient{

public SSLClient() throws Exception{

        super();

        SSLContext ctx = SSLContext.getInstance("TLS");

        X509TrustManager tm = new X509TrustManager() {

                @Override

                public void checkClientTrusted(X509Certificate[] chain,

                        String authType) throws CertificateException {

                }

                @Override

                public void checkServerTrusted(X509Certificate[] chain,

                        String authType) throws CertificateException {

                }

                @Override

                public X509Certificate[] getAcceptedIssuers() {

                    return null;

                }

        };

        ctx.init(null, new TrustManager[]{tm}, null);

        SSLSocketFactory ssf = new SSLSocketFactory(ctx,SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

        ClientConnectionManager ccm = this.getConnectionManager();

        SchemeRegistry sr = ccm.getSchemeRegistry();

        sr.register(new Scheme("https", 443, ssf));

    }

}

HttpClient发送post请求的类

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import java.util.Map.Entry;

import org.apache.http.HttpEntity;

import org.apache.http.HttpResponse;

import org.apache.http.NameValuePair;

import org.apache.http.client.HttpClient;

import org.apache.http.client.entity.UrlEncodedFormEntity;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.message.BasicNameValuePair;

import org.apache.http.util.EntityUtils;

/*

 * 利用HttpClient进行post请求的工具类

 */

public class HttpClientUtil {

public String doPost(String url,MapString,String map,String charset){

HttpClient httpClient = null;

HttpPost httpPost = null;

String result = null;

try{

httpClient = new SSLClient();

httpPost = new HttpPost(url);

//设置参数

ListNameValuePair list = new ArrayListNameValuePair();

Iterator iterator = map.entrySet().iterator();

while(iterator.hasNext()){

EntryString,String elem = (EntryString, String) iterator.next();

list.add(new BasicNameValuePair(elem.getKey(),elem.getValue()));

}

if(list.size()  0){

UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list,charset);

httpPost.setEntity(entity);

}

HttpResponse response = httpClient.execute(httpPost);

if(response != null){

HttpEntity resEntity = response.getEntity();

if(resEntity != null){

result = EntityUtils.toString(resEntity,charset);

}

}

}catch(Exception ex){

ex.printStackTrace();

}

return result;

}

}

测试代码

import java.util.HashMap;

import java.util.Map;

//对接口进行测试

public class TestMain {

private String url = "";

private String charset = "utf-8";

private HttpClientUtil httpClientUtil = null;

public TestMain(){

httpClientUtil = new HttpClientUtil();

}

public void test(){

String httpOrgCreateTest = url + "httpOrg/create";

MapString,String createMap = new HashMapString,String();

createMap.put("authuser","*****");

createMap.put("authpass","*****");

createMap.put("orgkey","****");

createMap.put("orgname","****");

String httpOrgCreateTestRtn = httpClientUtil.doPost(httpOrgCreateTest,createMap,charset);

System.out.println("result:"+httpOrgCreateTestRtn);

}

public static void main(String[] args){

TestMain main = new TestMain();

main.test();

}

}

java翻墙请求的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、java翻墙请求的信息别忘了在本站进行查找喔。