如何在java中发送http请求?
我将此方法添加到MainActivity.java中 但是我在静态方面遇到了一个错误:内部类不能有静态declatarian如何在java中发送http请求?,java,android,Java,Android,我将此方法添加到MainActivity.java中 但是我在静态方面遇到了一个错误:内部类不能有静态declatarian protected static String excutePost(String targetURL, String urlParameters) { HttpURLConnection connection = null; try { //Create connection
protected static String excutePost(String targetURL, String urlParameters) {
HttpURLConnection connection = null;
try {
//Create connection
URL url = new URL(targetURL);
connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
connection.setRequestProperty("Content-Length",
Integer.toString(urlParameters.getBytes().length));
connection.setRequestProperty("Content-Language", "en-US");
connection.setUseCaches(false);
connection.setDoOutput(true);
//Send request
DataOutputStream wr = new DataOutputStream(
connection.getOutputStream());
wr.writeBytes(urlParameters);
wr.close();
//Get Response
java.io.InputStream is = connection.getInputStream();
BufferedReader rd = new BufferedReader(new java.io.InputStreamReader(is));
StringBuilder response = new StringBuilder(); // or StringBuffer if not Java 5+
String line;
while((line = rd.readLine()) != null) {
response.append(line);
response.append('\r');
}
rd.close();
return response.toString();
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
if(connection != null) {
connection.disconnect();
}
}
}
我可以删除静态,然后我就没有错误了。
但是从现在起,我在哪里调用这个方法呢?从onCreate内部?
已尝试,但在键入excute时它不存在…在onCreate中,它不存在无法调用它
我如何使用这个方法?我应该把什么作为urlParameters呢?保存“excutePost”的外部类是一个内部类,因此它不能包含静态方法。您可以做的是将外部类移动到一个单独的文件中,并使其非静态-这将解决您的问题。您需要发布整个代码。到目前为止,您只向我们展示了一种方法(粗略地看,它看起来是正确的)。这是一个非常易于使用的HTTP请求库。这比HttpURLConnection好得多