URLから文字列をダウンロードするのにokhttpを使用しています。ここにコードがあります。Java OkHttp要求を満たすことができません
public static void main(String[] args) throws InterruptedException {
String jsonString = downloadJsonString("https://api.korbit.co.kr/v1/ticker/detailed?currency_pair=btc_krw");
System.out.println(jsonString);
}
String downloadJsonString (String url) throws IOException {
OkHttpClient okHttpClient = new OkHttpClient();
Request request = new Request.Builder()
.url(url)
.build();
Response response = okHttpClient.newCall(request).execute();
return response.body().string();
}
結果はこのようなものです:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The request could not be satisfied</TITLE>
</HEAD><BODY>
<H1>ERROR</H1>
<H2>The request could not be satisfied.</H2>
<HR noshade size="1px">
Request blocked.
<BR clear="all">
<HR noshade size="1px">
<PRE>Generated by cloudfront (CloudFront)
Request ID: jIs6PvNF01BMsQrynj4pk8eBXuQW-n-Q02Tav0SQghSZ7TzZOFfrAg==
</PRE>
<ADDRESS>
</ADDRESS>
</BODY></HTML>
私はブラウザにURLを入れた場合は、それが正常に動作します。応答は次のとおりです。
{"timestamp":1507942765556,"last":"6355000","bid":"6355000","ask":"6358500","low":"6310000","high":"6949000","volume":"12329.815314799943534093","change":"0","changePercent":"0"}
解決方法は?
ありがとうございます。私は彼らにユーザーエージェントが必要だとは思っていません。 – milosmns