您的位置:首页 > 编程语言 > Java开发

java socket 实现get post 请求

2012-06-19 23:37 246 查看
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);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: