您当前的位置:首页 > 互联网教程

javacurlhttp请求时间细节,怎么实现

发布时间:2025-05-25 02:12:06    发布人:远客网络

javacurlhttp请求时间细节,怎么实现

一、javacurlhttp请求时间细节,怎么实现

以下代码是Java实现Http的Post、Get、代理访问请求,可以参考一下

packagecom.snowfigure.kits.net;

importjava.io.InputStreamReader;

importjava.io.OutputStreamWriter;

importjava.io.UnsupportedEncodingException;

importjava.net.HttpURLConnection;

importjava.net.InetSocketAddress;

staticStringproxyHost="127.0.0.1";

publicstaticStringurlEncode(Stringsource,Stringencode){

result=java.net.URLEncoder.encode(source,encode);

}catch(UnsupportedEncodingExceptione){

publicstaticStringurlEncodeGBK(Stringsource){

result=java.net.URLEncoder.encode(source,"GBK");

}catch(UnsupportedEncodingExceptione){

publicstaticStringhttpRequest(Stringreq_url){

StringBufferbuffer=newStringBuffer();

HttpURLConnectionhttpUrlConn=(HttpURLConnection)url.openConnection();

httpUrlConn.setDoOutput(false);

httpUrlConn.setUseCaches(false);

httpUrlConn.setRequestMethod("GET");

InputStreaminputStream=httpUrlConn.getInputStream();

InputStreamReaderinputStreamReader=newInputStreamReader(inputStream,"utf-8");

BufferedReaderbufferedReader=newBufferedReader(inputStreamReader);

while((str=bufferedReader.readLine())!=null){

System.out.println(e.getStackTrace());

publicstaticInputStreamhttpRequestIO(StringrequestUrl){

HttpURLConnectionhttpUrlConn=(HttpURLConnection)url.openConnection();

httpUrlConn.setRequestMethod("GET");

inputStream=httpUrlConn.getInputStream();

*请求参数,请求参数应该是name1=value1&name2=value2的形式。

*@returnURL所代表远程资源的响应结果

publicstaticStringsendGet(Stringurl,Stringparam){

StringurlNameString=url+"?"+param;

URLrealUrl=newURL(urlNameString);

URLConnectionconnection=realUrl.openConnection();

connection.setRequestProperty("accept","*/*");

connection.setRequestProperty("connection","Keep-Alive");

connection.setRequestProperty("user-agent",

"Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)");

Map<String,List<String>>map=connection.getHeaderFields();

System.out.println(key+"--->"+map.get(key));

//定义BufferedReader输入流来读取URL的响应

in=newBufferedReader(newInputStreamReader(

connection.getInputStream()));

while((line=in.readLine())!=null){

System.out.println("发送GET请求出现异常!"+e);

*请求参数,请求参数应该是name1=value1&name2=value2的形式。

*@return所代表远程资源的响应结果

publicstaticStringsendPost(Stringurl,Stringparam,booleanisproxy){

@SuppressWarnings("static-access")

Proxyproxy=newProxy(Proxy.Type.DIRECT.HTTP,newInetSocketAddress(proxyHost,proxyPort));

conn=(HttpURLConnection)realUrl.openConnection(proxy);

conn=(HttpURLConnection)realUrl.openConnection();

//发送POST请求必须设置如下两行

conn.setRequestMethod("POST");//POST方法

conn.setRequestProperty("accept","*/*");

conn.setRequestProperty("connection","Keep-Alive");

conn.setRequestProperty("user-agent",

"Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)");

conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");

//获取URLConnection对象对应的输出流

out=newOutputStreamWriter(conn.getOutputStream(),"UTF-8");

//定义BufferedReader输入流来读取URL的响应

newInputStreamReader(conn.getInputStream()));

while((line=in.readLine())!=null){

System.out.println("发送POST请求出现异常!"+e);

//使用finally块来关闭输出流、输入流

publicstaticvoidmain(String[]args){

Stringurl="";

Stringpara="key=youkeyid&youuid=uid&advert_type=int&domain=adf.ly&url=";

Stringsr=HttpRequestUtil.sendPost(url,para,true);

二、java怎么发送post请求参数

在Java中,向指定URL发送POST请求参数,可以使用URLConnection类。下面是一个示例方法:

public static String sendPost(String url, String param){

URLConnection conn= realUrl.openConnection();

conn.setRequestProperty("accept","*/*");

conn.setRequestProperty("connection","Keep-Alive");

conn.setRequestProperty("user-agent","Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1;SV1)");

//发送POST请求必须设置如下两行

//获取URLConnection对象对应的输出流

out= new PrintWriter(conn.getOutputStream());

//定义BufferedReader输入流来读取URL的响应

in= new BufferedReader(new InputStreamReader(conn.getInputStream()));

while((line= in.readLine())!= null){

System.out.println("发送 POST请求出现异常!"+e);

//使用finally块来关闭输出流、输入流

这个方法接收两个参数:URL和参数。参数应该是name1=value1&name2=value2的形式。通过设置请求属性和开启输出流,我们可以发送POST请求,并读取响应结果。

此方法在发送POST请求时,会处理异常,并确保在finally块中关闭输出流和输入流,以避免资源泄漏。通过这种方式,我们可以有效地与远程服务器进行交互。

需要注意的是,在实际应用中,我们可能需要根据需求对这个方法进行调整,例如添加错误处理逻辑,或者支持更复杂的请求头设置。

总之,这是一个基本的Java实现POST请求的方法,适用于许多场景。通过它,我们可以轻松地与服务器进行通信,发送数据并接收响应。

三、java服务器接收客户端请求怎样实现的

import java.io.BufferedReader;

import java.io.InputStreamReader;

//构造服务器ServerSocket对象,参数为服务器端开放的端口号

ServerSocket ss= new ServerSocket(30102);

System.out.println("服务器准备就绪!");

//死循环可以使服务器持续处于接收客户端状态

//该方法使程序阻塞,等待客户端的链接,当监听到客户端的链接,创建一个Socket对象与客户端单独会话

//为了不影响服务器监听其它客户端,这里开启了一个线程,由线程处理与这个客户端的会话

public static void main(String[] args){

class ServerThread extends Thread{

private BufferedReader read= null;

private PrintStream print= null;

public ServerThread(Socket s){

//从Socket中获取输入流和输出流,由于我们只做一个简单的字符串通讯,所以采用BufferedRead和PrintStream来封装输入、输出流

read= new BufferedReader(new InputStreamReader(s.getInputStream()));

print= new PrintStream(s.getOutputStream());

//这里循环可以使服务器持续的接收客户端信息。read.readLine()通过输入流读取一段字符串,赋值给message变量,如果message字符串不为“exit”则循环,否则结束循环

while(!(message= read.readLine()).equals("exit")){

//将字符串前面添加“返回:”,再发回客户端

print.println("返回:"+ message);

//在 finally代码块中无论如何都会执行下面代码:

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.UnknownHostException;

//构造与服务器通讯的Socket对象,参数为服务器IP地址(String)和端口号(int),端口号需要和服务器端开放的端口号对应

Socket s= new Socket("192.168.1.100", 30102);

//启动一个线程与服务器通讯,并把链接服务器的Socket对象传递过去

} catch(UnknownHostException e){

public static void main(String[] args){

class LinkThread extends Thread{

private PrintStream out= null;

private BufferedReader in= null;

private Scanner scanner= null;

//将Socket对象实例保存在全局变量中,因为run方法中我们还要用它断开链接

//从Socket中获取输入流和输出流,由于我们只做一个简单的字符串通讯,所以采用BufferedRead和PrintStream来封装输入、输出流

out= new PrintStream(s.getOutputStream());

in= new BufferedReader(new InputStreamReader(s.getInputStream()));

} catch(UnknownHostException e){

scanner= new Scanner(System.in);

System.out.println("提示:如果要结束本次会话,请输入“exit”指令!");

//死循环可以使客户端不断的向服务器发送信息,不用担心循环无法结束,后面的return语句可以结束整个线程。

System.out.print("请输入:");

//将用户输入的字符串保存在message变量中

String message= scanner.nextLine();

System.out.println("本次会话结束!");

//在 finally代码块中无论如何都会执行下面代码: