将表单数据作为文件发布请求(wsdl.xml)

时间:2019-09-16 05:26:32

标签: java httpurlconnection

我正在尝试制作一个程序,该程序发送带有表单数据文件的邮寄请求,并将其作为邮寄请求的一部分上载。

我尝试了很多方法,但是找不到页面。 在这里,我试图用多部分实体创建多部分主体,并将对象传递给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;
          }

1 个答案:

答案 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");
            }
        }
    }
}