HttpUrlConnection "PUT" 请求也发送 "GET" 请求
HttpUrlConnection "PUT" Request also sends "GET" Request
我的问题是,当我使用 HttpURLConnection
向我的 REST API
发送 PUT
请求时,它首先发送 GET
请求,然后发送 [=14] =] 请求。我想知道我必须发送 PUT
请求的任何代码是否导致它也发送 GET
请求。
我知道这个问题出现在我的 Android
代码中,因为我也使用 Postman
发送 PUT
请求,而且我从来没有遇到过问题。
下面是我用来发送 HttpUrlConnection
请求的函数的副本。
public String HTTPConnection(String requestType, String url, String input, Context context, Activity activity){
HttpURLConnection connection = null;
try {
URL OBJ = new URL(url);
connection = (HttpURLConnection) OBJ.openConnection();
connection.setRequestMethod(requestType);
switch (requestType.toLowerCase()) {
case "get":
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
int i = 1;
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
i++;
}
in.close();
return response.toString();
case "put":
if (!input.equals("")){
OBJ.openStream();
connection.setRequestProperty("Content-type", "application/json");
connection.setRequestProperty("Accept", "application/json");
connection.setDoOutput(true);
}
Writer writer = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream(), "UTF-8"));
writer.write(input);
writer.flush();
writer.close();
connection.getInputStream();
return "";
default:
return "";
}
} catch (IOException e){
e.printStackTrace();
return null;
}
}
OBJ.openStream();
发送 GET 请求(参见 java.net.URL.openStream),因为它打开一个输入流以读取 URL.
的内容
我的问题是,当我使用 HttpURLConnection
向我的 REST API
发送 PUT
请求时,它首先发送 GET
请求,然后发送 [=14] =] 请求。我想知道我必须发送 PUT
请求的任何代码是否导致它也发送 GET
请求。
我知道这个问题出现在我的 Android
代码中,因为我也使用 Postman
发送 PUT
请求,而且我从来没有遇到过问题。
下面是我用来发送 HttpUrlConnection
请求的函数的副本。
public String HTTPConnection(String requestType, String url, String input, Context context, Activity activity){
HttpURLConnection connection = null;
try {
URL OBJ = new URL(url);
connection = (HttpURLConnection) OBJ.openConnection();
connection.setRequestMethod(requestType);
switch (requestType.toLowerCase()) {
case "get":
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
int i = 1;
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
i++;
}
in.close();
return response.toString();
case "put":
if (!input.equals("")){
OBJ.openStream();
connection.setRequestProperty("Content-type", "application/json");
connection.setRequestProperty("Accept", "application/json");
connection.setDoOutput(true);
}
Writer writer = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream(), "UTF-8"));
writer.write(input);
writer.flush();
writer.close();
connection.getInputStream();
return "";
default:
return "";
}
} catch (IOException e){
e.printStackTrace();
return null;
}
}
OBJ.openStream();
发送 GET 请求(参见 java.net.URL.openStream),因为它打开一个输入流以读取 URL.