「java发起」java发起post请求

博主:adminadmin 2023-01-09 08:24:07 579

今天给各位分享java发起的知识,其中也会对java发起post请求进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

如何在java中发送post请求

package com.test;

import java.util.ArrayList;

import java.util.List;

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.impl.client.DefaultHttpClient;

import org.apache.http.message.BasicNameValuePair;

import org.apache.http.util.EntityUtils;

public class D {

public static void main(String[] args){

ListNameValuePair nvps= new ArrayListNameValuePair();

nvps.add(new BasicNameValuePair("id", "1"));

String url="";

HttpClient httpClient = null;

String response="";

try {

HttpPost post = new HttpPost(url);

post.setHeader("Connection", "close");

httpClient = new DefaultHttpClient();

post.setEntity(new UrlEncodedFormEntity(nvps));

HttpResponse httpres= httpClient.execute(post);

if (httpres.getStatusLine().getStatusCode() = 300) {

System.out.println("Request Failed,Code:" + httpres.getStatusLine().getStatusCode() + ",URL:" + url);

}

response = EntityUtils.toString(httpres.getEntity(), "utf-8");

}catch(Exception e){

e.printStackTrace();

}finally{

if(httpClient!=null){

httpClient.getConnectionManager().shutdown();

}

}

System.out.println(response);

}

}

需要httpclient-4.1.3.jar,httpcore-4.1.4.jar和commons-logging-1.1.1.jar

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

HttpClient可以发起Http请求.

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

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

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

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

java发送put请求

1.服务端

package sterning;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.PrintWriter;

import java.net.*;

import java.util.concurrent.*;

public class MultiThreadServer {

private int port=8821;

private ServerSocket serverSocket;

private ExecutorService executorService;//线程池

private final int POOL_SIZE=10;//单个CPU线程池大小

public MultiThreadServer() throws IOException{

serverSocket=new ServerSocket(port);

//Runtime的availableProcessor()方法返回当前系统的CPU数目.

executorService=Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()*POOL_SIZE);

System.out.println("服务器启动");

}

public void service(){

while(true){

Socket socket=null;

try {

//接收客户连接,只要客户进行了连接,就会触发accept();从而建立连接

socket=serverSocket.accept();

executorService.execute(new Handler(socket));

} catch (Exception e) {

e.printStackTrace();

}

}

}

public static void main(String[] args) throws IOException {

new MultiThreadServer().service();

}

}

class Handler implements Runnable{

private Socket socket;

public Handler(Socket socket){

this.socket=socket;

}

private PrintWriter getWriter(Socket socket) throws IOException{

OutputStream socketOut=socket.getOutputStream();

return new PrintWriter(socketOut,true);

}

private BufferedReader getReader(Socket socket) throws IOException{

InputStream socketIn=socket.getInputStream();

return new BufferedReader(new InputStreamReader(socketIn));

}

public String echo(String msg){

return "echo:"+msg;

}

public void run(){

try {

System.out.println("New connection accepted "+socket.getInetAddress()+":"+socket.getPort());

BufferedReader br=getReader(socket);

PrintWriter pw=getWriter(socket);

String msg=null;

while((msg=br.readLine())!=null){

System.out.println(msg);

pw.println(echo(msg));

if(msg.equals("bye"))

break;

}

} catch (IOException e) {

e.printStackTrace();

}finally{

try {

if(socket!=null)

socket.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

2.客户端

package sterning;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.net.Socket;

import java.util.concurrent.ExecutorService;

import java.util.concurrent.Executors;

public class MultiThreadClient {

public static void main(String[] args) {

int numTasks = 10;

ExecutorService exec = Executors.newCachedThreadPool();

for (int i = 0; i numTasks; i++) {

exec.execute(createTask(i));

}

}

// 定义一个简单的任务

private static Runnable createTask(final int taskID) {

return new Runnable() {

private Socket socket = null;

private int port=8821;

public void run() {

System.out.println("Task " + taskID + ":start");

try {

socket = new Socket("localhost", port);

// 发送关闭命令

OutputStream socketOut = socket.getOutputStream();

socketOut.write("shutdown\r\n".getBytes());

// 接收服务器的反馈

BufferedReader br = new BufferedReader(

new InputStreamReader(socket.getInputStream()));

String msg = null;

while ((msg = br.readLine()) != null)

System.out.println(msg);

} catch (IOException e) {

e.printStackTrace();

}

}

};

}

}

如何在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发起和java发起post请求的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。