html页面的一个form 通过 点击 搜索 按钮 获得一个在text输入的相关文字的查询页面。
我现在想 获得 查询页面的url。应该怎么写(text里输入有可能是中文) 多谢了
<form id="" name="" action="/search.htm?ad=-1&method=search" method="post" >
<input name="words" type="text" id="words"/>
<input id="sousuo" name="sousuo" type="submit" value="搜索" />
</form>
我现在想 获得 查询页面的url。应该怎么写(text里输入有可能是中文) 多谢了
<form id="" name="" action="/search.htm?ad=-1&method=search" method="post" >
<input name="words" type="text" id="words"/>
<input id="sousuo" name="sousuo" type="submit" value="搜索" />
</form>
String result = null;
HttpClient httpClient = new HttpClient();
GetMethod getMethod = new GetMethod(url);
//使用系统提供的默认的恢复策略
getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler());
try {
int statusCode = httpClient.executeMethod(getMethod);//执行getMethod
if (statusCode != HttpStatus.SC_OK) {
}
InputStream in = getMethod.getResponseBodyAsStream();
result = streamToString(in);
} catch (HttpException e) {
} catch (IOException e) {
} finally {
getMethod.releaseConnection(); //释放连接
}
return result;
}
private static String streamToString(InputStream in) {
StringBuffer sb = new StringBuffer();
BufferedReader br =
new BufferedReader(new InputStreamReader(in));
String strLine = "";
try {
while ((strLine = br.readLine()) != null) {
sb.append(strLine.trim());
}
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
<form id="" name="" action="/search.htm?ad=-1&method=search" method="post" >
<input name="words" type="text" id="words"/>
<input id="sousuo" name="sousuo" type="submit" value="搜索" />
</form>HttpClient client = new HttpClient()
PostMethod method = new PostMethod("http://server:port/context/search.htm?ad=-1&method=search");
method.setParameter("words", words);
client.executeMethod(method);
method.releaseConnection();PostMethod会自动处理的,如果有中文传输错误可以在executeMethod之前增加
method.addRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=GBK");就可以了
import java.io.IOException;
import java.util.Enumeration;
import java.util.Properties;import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;public class Netway {
private HttpClient httpClient = new HttpClient(); private String serverURL = ""; public String postPage(String page) {
String url = this.getURL(page);
PostMethod postMethod = new PostMethod(url);
return this.post(postMethod);
} private String getURL(String page) {
// TODO Auto-generated method stub
return "http://" + this.serverURL + "/" + page;
} public String postPage(String page, Properties pdata) {
String url = this.getURL(page);
PostMethod postMethod = new PostMethod(url);
NameValuePair[] data = new NameValuePair[pdata.size()];
Enumeration keys = pdata.keys();
int i = 0;
for (; keys.hasMoreElements();) {
String k = (String) keys.nextElement();
String v = (String) pdata.get(k);
data[i] = new NameValuePair(k, v);
i++;
}
postMethod.setRequestBody(data);
return this.post(postMethod);
} private String post(PostMethod postMethod) {
String result = "";
try {
int statusCode = httpClient.executeMethod(postMethod);
// 301 or 302
if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY
|| statusCode == HttpStatus.SC_MOVED_TEMPORARILY) {
Header locationHeader = postMethod
.getResponseHeader("location");
String location = null;
if (locationHeader != null) {
location = locationHeader.getValue();
System.out
.println("The page was redirected to:" + location);
} else {
System.err.println("Location field value is null.");
}
}
result = postMethod.getResponseBodyAsString();
} catch (HttpException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} System.out.println(result);
return result; } public void setServerURL(String serverURL) {
this.serverURL = serverURL; } public String getServerURL() {
return serverURL;
}}