我正在尝试制作一个程序,该程序发送带有表单数据文件的邮寄请求,并将其作为邮寄请求的一部分上载。
我尝试了很多方法,但是找不到页面。 在这里,我试图用多部分实体创建多部分主体,并将对象传递给http。
public void uploadwsdl() throws Exception {
MultipartEntityBuilder mb = MultipartEntityBuilder.create();
File file = new File("filpath");
mb.addBinaryBody("filename", file);
org.apache.http.HttpEntity fileEntity = mb.build();
String wsdlUrl = "url";
URL serverUrl = new URL(
wsdlUrl);
String CompanyCodeXML = getData("CompanyCodeMS");
System.out.println("=====Start XML Payload=====");
RestResponse response = retrieveStatusFromAPI(wsdlUrl,fileEntity);
Assert.assertEquals(response.getCode(), BaseHelper.HTTP_200, "Response Code is not same as Expected:");
String responseContent = response.getContent();
Assert.assertEquals(verifySuccessResponse(responseContent), true, "Response Message does not have JobId");
Assert.assertNotNull(response, "Response is null");
System.out.println("=====End XML Payload=====");
}
private RestResponse retrieveStatusFromAPI (String endPointURL,HttpEntity inputEntity)
{
RestResponse response = null;
try {
String userCredentials = "test" + ":" + "pwd";
String basicAuth = "Basic "+ new String(Base64.getEncoder().encode(userCredentials.getBytes()));
HttpRequests connection = new HttpRequests();
response = connection.httpPost(endPointURL, basicAuth, inputEntity);
} catch (Exception ioe) {
ioe.printStackTrace();
}
return response;
}
答案 0 :(得分:0)
我可以找到一种解决方案,以文件形式发送过帐请求。只需修改EntityBuilder代码,如下所示:
public void performFileSearch() {
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.setType("text/plain");
startActivityForResult(intent, READ_REQUEST_CODE);
}
@Override
public void onActivityResult(int requestCode, int resultCode,
Intent resultData) {
super.onActivityResult(requestCode, resultCode, resultData);
if (requestCode == READ_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
Uri uri = null;
if (resultData != null) {
uri = resultData.getData();
Log.i(TAG, "Uri: " + uri.getPath());
File file = new File(uri.getPath());
if (file.exists()) {
Log.i(TAG, "Exists");
} else {
Log.i(TAG, "Does not exist");
}
}
}
}