AsyncHttpClient - запрос POST через HTTPS

Я разрабатываю новое приложение для Android, которое позволяет пользователю оценивать контент. Скорость отправляется благодаря асинхронному запросу (POST) через HTTPS. К сожалению, запрос не дошел до моего веб-сервиса. Когда я взглянул на журнал доступа к журналу, URL-адрес был обрезан. Вы можете найти ниже соответствующий код.

private static AsyncHttpClient getClient()
{
    if(client == null)
    {
        client =  new AsyncHttpClient(true, 80, 443);

        client.getHttpClient().getParams().setParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS, true);
        client.getHttpClient().getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
    }

    return client;
}

public static void createComment(int idArticle, String content, final Context context, final Callback callback)
{
    final User currentUser = RealmManager.getUser();

    RequestParams paramsPost = new RequestParams();
    paramsPost.put("id_article", idArticle);
    paramsPost.put("id_utilisateur", currentUser.getId());
    paramsPost.put("content", content);

    HashMap<String, String> paramsGet = getDefaultParams(context, currentUser, "webservices.createCommentaire");

    getClient().post(createGetURL(currentUser.getURL(), paramsGet), paramsPost, new AsyncHttpResponseHandler()
    {
        @Override
        public void onSuccess(int statusCode, Header[] headers, byte[] response)
        {
            callback.onSuccess(/*..*/);
        }

        @Override
        public void onFailure(int statusCode, Header[] headers, byte[] errorResponse, Throwable e)
        {
            callback.onFailure(/*..*/);
        }
    });
}

Когда я ставлю точку останова и проверяю запрос, это выглядит так:

https://api.webservices.com/index.php?option=webservices&app_version=2.0&task=createCommentaire&token=XXXXXXXXXXXX&version=v2&format=raw

Но в журнале доступа URL усекается после "?":

POST - https://api.webservices.com/index.php?

Следовательно, я получил в ответ HTML-код index.php, который я не могу разобрать в JSON.

Спасибо заранее за вашу помощь.

1 ответ

Решение

У меня есть два предложения для вас.

  1. Используйте метод UrlEncoder.encode("") для каждой части ваших параметров

  2. Не используйте параметры строки запроса для отправки данных на сервер.

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