在Java中进行URI验证的http调用是不推荐的,因为URI验证只能验证URI的格式是否正确,而不能验证URI是否实际存在或可用。相反,应该使用Java的HTTP客户端库,如Apache HttpClient或OkHttp来进行HTTP调用,并在请求发送前对URI进行验证。
以下是使用Apache HttpClient库进行HTTP调用,并对URI进行验证的示例代码:
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import java.net.URI;
import java.net.URISyntaxException;
public class HttpExample {
public static void main(String[] args) {
String uriString = "http://example.com/api";
try {
URI uri = new URI(uriString);
// Validate the URI
if (!uri.getScheme().equals("http") && !uri.getScheme().equals("https")) {
throw new IllegalArgumentException("Invalid URI scheme");
}
// Create HttpClient
HttpClient httpClient = HttpClientBuilder.create().build();
// Create HttpGet request
HttpGet httpGet = new HttpGet(uri);
// Execute the request
HttpResponse response = httpClient.execute(httpGet);
// Process the response
int statusCode = response.getStatusLine().getStatusCode();
String responseBody = EntityUtils.toString(response.getEntity());
// Do something with the response
System.out.println("Status code: " + statusCode);
System.out.println("Response body: " + responseBody);
} catch (URISyntaxException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
在上述示例代码中,我们首先通过创建一个URI对象来验证URI的格式是否正确。然后,我们使用Apache HttpClient库创建一个HttpClient实例,并使用HttpGet对象来执行HTTP GET请求。最后,我们可以通过HttpResponse对象获取响应的状态码和响应体,并对其进行处理。
使用类似的方式,您也可以使用其他HTTP客户端库来进行HTTP调用,并在发送请求之前对URI进行验证。