我修復了您的錯誤IBM。
在com.ibm.watson.developer_cloud.discovery.v1.Discovery.createDocument(CreateDocumentRequest createRequest)中,您可以看到正在構建的Multipart請求,而從未添加所需的元數據部分(smh)。
我擴展的發現,並添加
multipartBuilder.addFormDataPart("metadata", createRequest.getMetadata().toString());
的請求......
public ServiceCall<CreateDocumentResponse> createDocument(CreateDocumentRequest createRequest) {
Validator.notEmpty(createRequest.getEnvironmentId(), "environment_id cannot be empty");
Validator.notEmpty(createRequest.getCollectionId(), "collection_id cannot be empty");
RequestBuilder builder = RequestBuilder.post(String.format("/v1/environments/%s/collections/%s/documents", new Object[] { createRequest.getEnvironmentId(), createRequest.getCollectionId() }));
if (createRequest.getConfigurationId() != null) {
builder.query(new Object[] { "configuration_id", createRequest.getConfigurationId() });
}
Validator.notNull(createRequest.getFile(), "Document file cannot be null");
MediaType mediaType = (MediaType)supportedMediaTypes.get(createRequest.getMediaType());
Validator.notNull(mediaType, String.format("Media Type '%s' not supported", new Object[] { createRequest.getMediaType() }));
RequestBody file = InputStreamRequestBody.create(mediaType, createRequest.getFile());
MultipartBody.Builder multipartBuilder = new MultipartBody.Builder();
multipartBuilder.setType(MultipartBody.FORM);
multipartBuilder.addFormDataPart("file", "filename", file);
multipartBuilder.addFormDataPart("metadata", createRequest.getMetadata().toString());
builder.body(multipartBuilder.build());
Request request = createVersionedRequest(builder);
return createServiceCall(request, ResponseConverterUtils.getObject(CreateDocumentResponse.class));
}
如果去掉&返回=元數據 - 你看到的元數據呢? – catbelly
沒有。我會得到你所期望的一切,只是元數據不再被添加。 – user3689479
還是什麼? IBM,你真的讓我失望了! – user3689479