java socket 实现get post 请求

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;


class HttpRequestBean {
private String ip;
private String realm;
private int port;
private String url;
private String params;
private boolean isPOST;


// getter 、setter方法略
public String getIp() {
return ip;
}


public void setIp(String ip) {
this.ip = ip;
}


public String getRealm() {
return realm;
}


public void setRealm(String realm) {
this.realm = realm;
}


public int getPort() {
return port;
}


public void setPort(int port) {
this.port = port;
}


public String getUrl() {
return url;
}


public void setUrl(String url) {
this.url = url;
}


public String getParams() {
return params;
}


public void setParams(String params) {
this.params = params;
}


public boolean isPOST() {
return isPOST;
}


public void setPOST(boolean isPOST) {
this.isPOST = isPOST;
}


}


public class HttpSocketUtil {
private static String httpPOSTSocket(String ip, String realm, int port,
String url, String params) throws UnknownHostException, IOException {
Socket s = new Socket(ip, port);
PrintWriter pw = new PrintWriter(new OutputStreamWriter(s
.getOutputStream()));
if (url.startsWith("/")) {
url = url.substring(1);
}
int index2 = url.indexOf("?");
if (index2 > 0) {
url = url.substring(0, index2);
}
pw.println("POST " + url + " HTTP/1.1");
pw.println("Host:" + realm);
pw.println("Accept-Language: zh-cn,zh;q=0.5");
pw.println("Accept-Encoding: gzip,deflate");
pw.println("Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7");
pw.println("Connection: keep-alive");
pw.println("Cookie: ASPSESSIONIDCSAATTCD=DOMMILABJOPANJPNNAKAMCPK");
pw.println("Content-Type: application/x-www-form-urlencoded");
int leng = params.length();
pw.println("Content-Length: " + leng);
pw.println();
pw.println(params);
pw.println();
pw.flush();
BufferedReader br = new BufferedReader(new InputStreamReader(s
.getInputStream()));
String temp = null;
while((temp = br.readLine()) != "")
{
System.out.println(temp);
}
br.close();
pw.close();
s.close();
return temp;
}


public static String httpSocket(HttpRequestBean httpBean)
throws UnknownHostException, IOException {
if (httpBean.isPOST()) {
System.out.println("POST");
return httpPOSTSocket(httpBean);
} else {
System.out.println("GET...");
return httpGETSocket(httpBean);
}
}


private static String httpGETSocket(String ip, String realm, int port,
String url) throws UnknownHostException, IOException {
Socket s = new Socket(ip, port);
PrintWriter pw = new PrintWriter(new OutputStreamWriter(s
.getOutputStream()));
if (url.startsWith("/")) {
url = url.substring(1);
}
pw.println("GET " + url + " HTTP/1.1");
pw.println("Host:" + realm);
pw.println("Accept-Language: zh-cn,zh;q=0.5");
pw.println("Accept-Encoding: gzip,deflate");
pw.println("Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7");
pw.println("Connection: keep-alive");
// pw.println("Cookie: ASPSESSIONIDCSAATTCD=DOMMILABJOPANJPNNAKAMCPK");
pw.println("Content-Type: text/http");
pw.println();
pw.flush();
BufferedReader br = new BufferedReader(new InputStreamReader(s
.getInputStream()));
String temp = null;
while((temp = br.readLine()) != "")
{
System.out.println(temp);
}
br.close();
pw.close();
s.close();
return temp;
}


private static String httpPOSTSocket(HttpRequestBean httpBean)
throws UnknownHostException, IOException {
return httpPOSTSocket(httpBean.getIp(), httpBean.getRealm(), httpBean
.getPort(), httpBean.getUrl(), httpBean.getParams());
}


private static String httpGETSocket(HttpRequestBean httpBean)
throws UnknownHostException, IOException {
return httpGETSocket(httpBean.getIp(), httpBean.getRealm(), httpBean
.getPort(), httpBean.getUrl());
}


public static void main(String[] args) {
String content = null;
HttpRequestBean httpBean = new HttpRequestBean();
String ip = "www.cnblogs.com";
httpBean.setIp(ip);
httpBean.setParams("tbUserName=123");
httpBean.setPort(80);
//httpBean.setUrl("http://www.cnblogs.com/");
httpBean.setUrl("http://passport.cnblogs.com/login.aspx");
httpBean.setPOST(true);
httpBean.setRealm(ip);
try {
content = httpSocket(httpBean);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(content);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值