0

Javaラッパーを書いているAPIを使用してCrowdFlowerにデータをアップロードしようとしています。私は HttpClient Apache を使用しています。

CrowdFlow が提供する cURL の例は次のとおりです。curl -T 'sampledata.xlsx' -H 'Content-Type: application/vnd.ms-excel' https://api.crowdflower.com/v1/jobs/upload.json?key={api_key}

ここに私のコードがあります:

public InputStream HTTPmethodPostUpload (String authKey, File file) throws ClientProtocolException, IOException{

        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost("https://api.crowdflower.com/v1/jobs/upload.json?key="+authKey);

        MultipartEntity mpEntity = new MultipartEntity();
        ContentBody cbody = new FileBody( file,"application/vnd.ms-excel");
        mpEntity.addPart("sampledata.xlsx", cbody );
        httpPost.setEntity(mpEntity);
        HttpResponse response = httpclient.execute(httpPost);
        HttpEntity entityResponse = response.getEntity();
        return  entityResponse.getContent(); }

次のメッセージでエラーが返されます。

{受け入れられない形式です。Content-Type は \"formats\" にリストされているものの 1 つでなければなりませんが、\"multipart/form-data; bound=yTuwTm4hWmnasxIMB9dC-sxdELIGoNJVudjJdCz\"","formats":["application/vnd .oasis.opendocument.spreadsheet","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.ms-excel","text/csv","text/plain"]}}

私は Apache HttpClient をよく知らないので、コードのどこに問題があるのか​​ わかりません。

4

1 に答える 1