下午好;我需要下载一个小服务器字符串的代码,我有服务器接收参数并通过PHP返回值
网址:http://127.0.0.1/page.php?var=a
网址可以返回值“YES”或“NO”
我想编码变量并返回值
您可以在一行hackey Java中执行此操作,而无需其他库。像这样:
String out = new Scanner(new URL(...).openStream(), "UTF-8").useDelimiter("\\A").next();
你可以轻松使用OkHttp Don不要忘记先导入
示例代码:
OkHttpClient client = new OkHttpClient();
String run(String url) throws IOException {
Request request = new Request.Builder()
.url(url)
.build();
Response response = client.newCall(request).execute();
return response.body().string();
}
使用org.apache.commons.http
一直以来都很强大,重量轻且对用户友好。通过向request
添加标题,您可以设置代表客户端操作系统和浏览器信息的User-Agent
。此外,如果服务器对内容类型敏感,则可以为Content-type
添加另一个标头,例如application/json
。如果使用任何身份验证库(如jwt
),也可以在此处找到令牌。
public class Client {
private static HttpClient CLIENT = HttpClientBuilder.create().build();
private static final String URL = "http://127.0.0.1/page.php?var=a";
public static void main(String[] args) throws IOException {
Client client = new Client();
System.out.println(client.requestBuilder(URL));
}
private String requestBuilder(String url) throws IOException {
HttpGet request = new HttpGet(url);
// Add headers: OS, Browser, Content-Type
request.addHeader("User-Agent", "Linux");
request.addHeader("Content-Type", "application/json");
HttpResponse response = CLIENT.execute(request);
BufferedReader reader = new BufferedReader(new
InputStreamReader(response.getEntity().getContent()));
StringBuilder result = new StringBuilder();
String line;
while (Objects.nonNull(line = reader.readLine()))
result.append(line);
return result.toString();
}
希望有所帮助。如果有什么不清楚的话,请不要犹豫我。