所以我有这段代码,我得到它的工作,现在它基本上允许我发送http post并获取我想要的几乎任何外部网站的请求,除非这些元素不包含name属性。这里有一个例子:发送HTTP请求GET/POST以形成Java?
这是Java代码:
public static String sendPostRequest(String url) {
StringBuffer sb = null;
try {
String data = URLEncoder.encode("user", "UTF-8") + "="
+ URLEncoder.encode("myUserName", "UTF-8") + "&"
+ URLEncoder.encode("submit", "UTF-8") + "="
+ URLEncoder.encode("Submit", "UTF-8");
URL requestUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) requestUrl
.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("GET");
OutputStreamWriter osw = new OutputStreamWriter(
conn.getOutputStream());
osw.write(data);
osw.flush();
BufferedReader br = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
String in = "";
sb = new StringBuffer();
while ((in = br.readLine()) != null) {
sb.append(in + "\n");
}
osw.close();
br.close();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sb.toString();
}
这是我想要的请求发送到形式(这是在W3Schools的网站形式,这是该网站http://www.w3schools.com/html/html_forms.asp):
<form name="input0" target="_blank" action="html_form_action.asp" method="get">
Username:
<input type="text" name="user" size="20" />
<input type="submit" value="Submit" />
</form>
现在因为提交按钮不具有name属性,我无法发送正确的HTTP GET/POST请求,它(我知道这是在这种情况下,get方法)。我用什么方法(什么正确的键/值)替换字符串数据,以便它实际发送请求到这个表单?
这是如何在相对于什么,我试图做什么办法?我在问什么键/值应该用来发送HTTP POST请求到特定的站点...不是关于某种API – ZimZim 2012-03-31 10:03:56
@ user1007059:HttpClient会给你更好的可读性,你可以解决你的问题...我在我的项目中使用这个httpclien 4.1,并从任何URL获取数据。 – 2012-03-31 10:35:40