私はhttpクライアントapache APIをテストし始めました。リクエストを送信し、virustotal APIへの応答を受け取るために必要です。私は彼らのウェブサイトからも理解されるようにapache httpClient APIを使用してfile + apiキーと他のパラメータを1回のリクエストとして送信するにはどうすればよいですか?
- APIキー値(各ユーザーに一意の値)
- ファイル自体:ウイルス総APIはPOSTリクエストのパラメータに必要です。たとえば、
:
>>> url = "https://www.virustotal.com/vtapi/v2/url/scan"
>>> parameters = {"url": "http://www.virustotal.com",
... "apikey": "-- YOUR API KEY --"}
>>> data = urllib.urlencode(parameters)
>>> req = urllib2.Request(url, data)
瞬間に、私は、JavaではなくPythonで同じことをやろうとしています。
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
//create post request
HttpPost request = new HttpPost("https://www.virustotal.com/vtapi/v2/file/scan");
//http json header
request.addHeader("content-type", "application/json");
String str = gson.toJson(param);
String fileName = UUID.randomUUID().toString() + ".txt";
try {
//API key
StringEntity entity = new StringEntity(str);
Writer writer = new BufferedWriter(new FileWriter(fileName));
writer.write(VirusDefinitionTest.malware());
request.setEntity(entity);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
FileBody fileBody = new FileBody(new File(fileName));
builder.addTextBody("my_file", fileName);
HttpEntity entity = builder.build();
request.setEntity(entity);
HttpResponse response;
try {
response = httpClient.execute(request);
...
は、残念ながら、私はHTTP受信/ 1.1 403禁止:ここでの手順を通じて案内するためのコメント私のソースコードの一部です。明らかに、エンティティのどこかにエラーがありますが、それを行う方法がわかりません。どんな援助も深く歓迎されるだろう。
このすべては、VirusTotal for Javaに最適です。 'EntityUtils.toString(resEntity)'はパズルの最後の部分でした。 – nettie