java调用第三方接口返回结果300
时间: 2023-09-16 11:14:30 浏览: 179
当Java调用第三方接口返回结果为300时,通常表示请求被重定向到了另一个URL地址。这种情况下,可以使用Java的HTTP客户端库来处理重定向。
以下是使用Java原生的HttpURLConnection处理重定向的示例代码:
```java
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class HttpUrlConnectionExample {
public static void main(String[] args) {
try {
URL url = new URL("http://example.com/api/endpoint");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
int status = con.getResponseCode();
if (status == HttpURLConnection.HTTP_MOVED_TEMP || status == HttpURLConnection.HTTP_MOVED_PERM) {
String newUrl = con.getHeaderField("Location");
con = (HttpURLConnection) new URL(newUrl).openConnection();
}
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
}
}
```
其中,如果返回的状态码为HTTP_MOVED_TEMP或HTTP_MOVED_PERM,说明请求被重定向了,可以使用getHeaderField方法获取重定向的新URL地址,然后再次使用HttpURLConnection打开新的连接。最后,可以使用BufferedReader读取返回的数据。
需要注意的是,有些第三方接口可能会限制重定向的次数,因此在处理重定向时需要注意控制重定向的次数,以避免出现无限重定向的情况。
阅读全文