package com.app.test;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;import org.apache.log4j.Logger;public class HttpTest {


/**
 * <pre>
 * 发送带参数的GET的HTTP请求
 * </pre>
 * 
 * @param reqUrl HTTP请求URL
 * @param parameters 参数映射表
 * @return HTTP响应的字符串
 */
/**
 * <pre>
 * 发送带参数的POST的HTTP请求
 * </pre>
 * 
 * @param reqUrl HTTP请求URL
 * @param parameters 参数映射表
 * @return HTTP响应的字符串
 */
public static String doPost(String reqUrl, Map<String, String> parameters, String recvEncoding) {

URL url=null;
HttpURLConnection url_con = null;
String responseContent = null;
String sessionId=null;
try {
StringBuffer params = new StringBuffer();
for (Iterator<?> iter = parameters.entrySet().iterator(); iter.hasNext();) {
Entry<?, ?> element = (Entry<?, ?>) iter.next();
params.append(element.getKey().toString());
params.append("=");
params.append(URLEncoder.encode(element.getValue().toString(), HttpTest.requestEncoding));
params.append("&");

}
System.out.println(params.toString());
if (params.length() > 0) {
params = params.deleteCharAt(params.length() - 1);
}
///////////////////////////
 url = new URL("http://eo.gyyx.cn/");
 url_con = (HttpURLConnection) url.openConnection();
 url_con.setRequestProperty("User-Agent", "Internet Explorer");
 url_con.setRequestProperty("Host", "eo.gyyx.cn");
 url_con.connect();
 String cookie0 = url_con.getHeaderField("Set-Cookie");
 /////////////////////////////////
 url_con.disconnect();
 url = new URL(reqUrl);
 url_con = (HttpURLConnection) url.openConnection();

            url_con.setInstanceFollowRedirects(true);
            url_con.setDoOutput(true); // 需要向服务器写数据
            url_con.setDoInput(true); // 
            url_con.setUseCaches(false); // 获得服务器最新的信息
            url_con.setAllowUserInteraction(false);
url_con.setRequestMethod("POST");
//System.setProperty("sun.net.client.defaultConnectTimeout", String.valueOf(HttpTest.connectTimeOut));// (单位:毫秒)jdk1.4换成这个,连接超时
//System.setProperty("sun.net.client.defaultReadTimeout", String.valueOf(HttpTest.readTimeOut)); // (单位:毫秒)jdk1.4换成这个,读操作超时
// url_con.setConnectTimeout(5000);//(单位:毫秒)jdk
// 1.5换成这个,连接超时
// url_con.setReadTimeout(5000);//(单位:毫秒)jdk 1.5换成这个,读操作超时
            ////////////////////////////////////////////
url_con.setRequestProperty("Connection", "Keep-Alive");
            url_con.setRequestProperty("Cache-Control", "no-cache");
            url_con.setRequestProperty("Cookie", cookie0);
/////////////////////////////////////////////
          
byte[] b = params.toString().getBytes();
url_con.getOutputStream().write(b, 0, b.length);
// String cookie1 = url_con.getHeaderField("Set-Cookie");
url_con.getOutputStream().flush();
url_con.getOutputStream().close();

 
// System.out.println("========"+cookie1);
            InputStream in = url_con.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(in, recvEncoding));
String tempLine = rd.readLine();
StringBuffer tempStr = new StringBuffer();
String crlf = System.getProperty("line.separator");
while (tempLine != null) {
tempStr.append(tempLine);
tempStr.append(crlf);
tempLine = rd.readLine();
}
responseContent = tempStr.toString();
rd.close();
in.close();
System.out.println(cookie0);

//////////
if(cookie0 != null) 

    sessionId = cookie0.substring(0, cookie0.indexOf(";")); 
}


}
catch (IOException e) {
logger.error("网络故障", e);
}
finally {
if (url_con != null) {
url_con.disconnect();
}
}
return sessionId;
}
public static void main(String[] args) {
//String usl="txtAccount=%s&txtPwd=%s&__VIEWSTATE=%s&__EVENTVALIDATION=%s&mpc=%s";
String view="/wEPDwUKLTMzNDE0ODA3MmRkndBGE0jo1koODs0zlCY7efKhThU=";
String view2="/wEWBAKNnPiODgKUj8fhDAKd+7qdDgKC3IeGDKKXCGfrxXWjRKVCiqK78H3lXLMl";
Map<String, String> map = new HashMap<String, String>();
map.put("txtAccount", "xxx");
map.put("txtPwd", "xxxxx");
map.put("__VIEWSTATE", view);
map.put("__EVENTVALIDATION", view2);
Set<String> key = map.keySet();
        for (Iterator it = key.iterator(); it.hasNext();) {
            String s = (String) it.next();          
        } String temp = HttpTest.doPost("http://eo.gyyx.cn/Page/User/Login.aspx", map, "GBK");
System.out.println("返回的消息是:" + temp);

//ASP.NET_SessionId Sent cbakeyjk4q4tyrzw12r3frzt (Session)

Map<String, String> map2 = new HashMap<String, String>();


map2.put("ctl00$ContentPlaceHolder1$txtName", "222");
map2.put("ctl00$ContentPlaceHolder1$txtNetBarIP", "1.1.1.1");
map2.put("ctl00$ContentPlaceHolder1$txtPhone", "");
map2.put("ctl00$ContentPlaceHolder1$txtRe", "");
map2.put("ctl00$ContentPlaceHolder1$txtScale", "");
map2.put("ctl00_LeftInfo1_TreeView1_ExpandState", "ennenn");
map2.put("ctl00_LeftInfo1_TreeView1_PopulateLog", "");
map2.put("ctl00_LeftInfo1_TreeView1_SelectedNode", "");

map2.put("__EVENTARGUMENT", "");
map2.put("__EVENTTARGET", "ctl00$ContentPlaceHolder1$btnAdd");
map2.put("__EVENTVALIDATION", "");
map2.put("__VIEWSTATE", "");
map2.put("__VIEWSTATEENCRYPTED", "");
map2.put("ctl00$ContentPlaceHolder1$rptGame$ctl00$dlstMaterielUse$ctl00$txtMaterielUseCount", "0");
map2.put("ctl00$ContentPlaceHolder1$rptGame$ctl00$dlstMaterielUse$ctl01$txtMaterielUseCount", "0");
map2.put("ctl00$ContentPlaceHolder1$rptGame$ctl00$dlstMaterielUse$ctl02$txtMaterielUseCount", "0");
map2.put("ctl00$ContentPlaceHolder1$rptGame$ctl00$txtPosterTotalNum", "0");
map2.put("ctl00$ContentPlaceHolder1$rptGame$ctl01$dlstMaterielUse$ctl00$txtMaterielUseCount", "0");
map2.put("ctl00$ContentPlaceHolder1$rptGame$ctl01$dlstMaterielUse$ctl01$txtMaterielUseCount", "0");
map2.put("ctl00$ContentPlaceHolder1$rptGame$ctl01$txtPosterTotalNum", "0");
map2.put("ctl00$ContentPlaceHolder1$rptGame$ctl02$dlstMaterielUse$ctl00$txtMaterielUseCount", "0");
map2.put("ctl00$ContentPlaceHolder1$rptGame$ctl02$dlstMaterielUse$ctl01$txtMaterielUseCount", "0");
map2.put("ctl00$ContentPlaceHolder1$rptGame$ctl02$txtPosterTotalNum", "0");
map2.put("ctl00$ContentPlaceHolder1$rptGame$ctl03$dlstMaterielUse$ctl00$txtMaterielUseCount", "0");
map2.put("ctl00$ContentPlaceHolder1$rptGame$ctl03$dlstMaterielUse$ctl01$txtMaterielUseCount", "0");
map2.put("ctl00$ContentPlaceHolder1$rptGame$ctl03$txtPosterTotalNum", "0");
map2.put("ctl00$ContentPlaceHolder1$rptGame$ctl04$dlstMaterielUse$ctl00$txtMaterielUseCount", "0");
map2.put("ctl00$ContentPlaceHolder1$rptGame$ctl04$dlstMaterielUse$ctl01$txtMaterielUseCount", "0");
map2.put("ctl00$ContentPlaceHolder1$rptGame$ctl04$txtTotalPop", "0");


String tems=HttpTest.doPost2("ASP.NET_SessionId=cbakeyjk4q4tyrzw12r3frzt", "http://eo.gyyx.cn/Page/User/Login.aspx", map2, "GBK");

// System.out.println("返回的消息是:" + tems);








}




public static String doPost2(String sessionId,String reqUrl, Map<String, String> parameters, String recvEncoding) {

URL url=null;
HttpURLConnection url_con = null;
String responseContent = null;

try {
StringBuffer params = new StringBuffer();
for (Iterator<?> iter = parameters.entrySet().iterator(); iter.hasNext();) {
Entry<?, ?> element = (Entry<?, ?>) iter.next();
params.append(element.getKey().toString());
params.append("=");
params.append(URLEncoder.encode(element.getValue().toString(), HttpTest.requestEncoding));
params.append("&");

}
System.out.println(params.toString());
if (params.length() > 0) {
params = params.deleteCharAt(params.length() - 1);
}


 url = new URL(reqUrl);
 url_con = (HttpURLConnection) url.openConnection();

            url_con.setInstanceFollowRedirects(true);
            url_con.setDoOutput(true); // 需要向服务器写数据
            url_con.setDoInput(true); // 
            url_con.setUseCaches(false); // 获得服务器最新的信息
            url_con.setAllowUserInteraction(false);
            url_con.setRequestProperty("Cookie", sessionId); 
url_con.setRequestMethod("POST");


byte[] b = params.toString().getBytes();
url_con.getOutputStream().write(b, 0, b.length);
url_con.getOutputStream().flush();
url_con.getOutputStream().close();


            InputStream in = url_con.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(in, recvEncoding));
String tempLine = rd.readLine();
StringBuffer tempStr = new StringBuffer();
String crlf = System.getProperty("line.separator");
while (tempLine != null) {
tempStr.append(tempLine);
tempStr.append(crlf);
tempLine = rd.readLine();
}
responseContent = tempStr.toString();
rd.close();
in.close();



}
catch (IOException e) {
logger.error("网络故障", e);
}
finally {
if (url_con != null) {
url_con.disconnect();
}
}
return responseContent;
}}