Java Httpclient MultipartEntityBuilder в параметре HTTPS был пуст в Java 1.7 и выше

Я использую HttpClient MultipartEntityBuilder ниже код, используемый для загрузки файлов, и это работает в java для всех версий, если мой URL-адрес HTTP.

Эта программа не выдает никаких ошибок во время работы и работает в версии Java 1.6, а также в HTTPS.

Предположим, что если я изменил свой URL с HTTP на HTTPS, этот код не работает в Java 1.7 и выше. мы используем подписанный CR сертификат SSL. Я запустил эту программу в Java 1.7 и получил пустые параметры на сервере Tomcat 6 и 7, поэтому мое приложение не может войти в систему, и ответ похож

"либо введите имя пользователя или токен аутентификации"

из-за всех параметров были восстановлены пустые значения в сервлете.

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.util.HashMap;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.HttpClientBuilder;

public class FileUpload {

    public static void main(String[] args) {

                String desctiption = "Account ID: nagaraj_n@hotmail.com<br />" +
                "User ID: efef3516a398a2f4ab96b0ef319f13ad<br />";
        HashMap<String, String> params = new HashMap<String, String>();
        params.put("username", "myusername");
        params.put("password", "mypassword");
        params.put("action", "create");
        params.put("description", desctiption);
        params.put("title", "Testing please avoid");
        params.put("description", desctiption);

           String line = "";
           String responce = "";
           Charset chars = Charset.forName("UTF-8");

            try {
            HttpClientBuilder builder = HttpClientBuilder.create();
              HttpClient httpClient = builder.build();

              HttpPost httpPost = new HttpPost("**https**://myurl.com/api?");

              MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create();
              entityBuilder.addPart("Attachment_field", new FileBody(new File("/home/Attachment.html")));
              entityBuilder.addPart("Attachment_field", new FileBody(new File("/home/Attachment1.html")));

              for(Object param : params.keySet()){
                  System.out.println(param.toString()+" : "+params.get(param.toString()));
                  entityBuilder.addPart(param.toString(), new StringBody(params.get(param.toString()), "text/plain", Charset.forName( "UTF-8" )));
              }


              final HttpEntity entity = entityBuilder.build();
              httpPost.setEntity(entity);

              HttpResponse response = httpClient.execute(httpPost);
              BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
              while ((line = rd.readLine()) != null) {
                  responce += line;
                  System.out.println(line);
              }

            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

            }

    }

Спасибо

0 ответов

Другие вопросы по тегам