2016-04-04 2 views
0

У меня проблема с моим приложением, мне нужно иметь возможность просматривать или регистрировать полный сетевой запрос, чтобы я мог точно видеть, какие параметры отправляются на мой сервер с помощью какие заголовки, в настоящее время это только показывает мне URL-адрес, есть ли способ сделать это в студии Android или есть какой-то код, который я могу написать, чтобы отображать эти данные?Показать параметры HTTP-запроса и заголовки, отправленные на сервер

Для дальнейшего объяснения вещей кажется термины сети запрос, параметров и заголовков путают человек, я использую библиотеку залпа Google для всех моих запросов htpp; GET, POST, PUT и т. Д. Теперь, отправляя данные на URL-адрес или получая данные по определенному URL-адресу, я должен быть в состоянии подтвердить правильность отправки правильных параметров и заголовков на сервер.

+1

Отладка - это, безусловно, самый простой способ узнать все параметры. В качестве альтернативы вы можете использовать инструмент сетевого анализа, например Wireshark, для получения полного запроса. Большинство инфраструктур для Android также имеют собственные возможности для отладки, хотя это зависит от того, что вы используете, очевидно. – Phoca

+1

Ваш вопрос непонятен. Какие параметры? Почему вы не можете проверить, какие параметры отправлены? – Shahzeb

+0

Параметры не обязательно должны быть названы, я отправляю запрос как GET, так и POST, мне нужно знать, как проверить отправленные параметры и отправлять заголовки в HTTP-запросе. – user3718908

ответ

1

Если говорить о тестировании параметров для API, вы, вероятно, ищет клиентов REST, как:

Postman

Rest Client

для проверки услуг. Но до этого у вас должна быть правильная документация обо всех веб-сервисах.

Решение:

В Android Studio, для отладки кода, просто поместите точки останова на код и нажмите кнопку отлаживать для выполнения

enter image description here

enter image description here

Вы можно разместить точку останова, щелкнув слева от каждой строки, где отображается точка останова.

Также проверьте этот учебник: Simple Debugging in Android Studio и следуйте дальнейшим видео для правильной отладки.

+0

Я использую почтальон для тестирования своих API. – user3718908

+0

, так что вы хотите проверить, посылаете ли вы правильные параметры через код? – Shahzeb

+0

Я хочу определить, что мое приложение действительно публикует правильные параметры и использует правильные заголовки при выполнении HTTP-запроса, если вы использовали firebug, тогда должен получить то, что я имею в виду, есть ли аналогичная функциональность в студии Android? – user3718908

1

Я бы рекомендовал вам использовать OkHttp для совершения всех сетевых вызовов. OkHttp предоставляет Interceptors, который будет служить вашей конкретной цели.

Определение перехватчик:

class LoggingInterceptor implements Interceptor { 
    @Override public Response intercept(Interceptor.Chain chain) throws IOException { 
    Request request = chain.request(); 

    long t1 = System.nanoTime(); 
    logger.info(String.format("Sending request %s on %s%n%s", 
     request.url(), chain.connection(), request.headers())); 

    HttpUrl url = request.url(); // url of the request. 

    Headers reqHeaders = request.headers(); // Here you are able to access headers which are being sent with the request. 

    RequestBody body = request.body(); // provides body of request, which you can inspect to see what is being sent. 

    Response response = chain.proceed(request); 

    long t2 = System.nanoTime(); 
    logger.info(String.format("Received response for %s in %.1fms%n%s", 
     response.request().url(), (t2 - t1)/1e6d, response.headers())); 

    Headers resHeaders = response.headers(); // Headers received in the response. 

    return response; 
    } 
} 

Используя его, чтобы сделать сетевые вызовы:

OkHttpClient client = new OkHttpClient.Builder() 
    .addInterceptor(new LoggingInterceptor()) 
    .build(); 

Request request = new Request.Builder() 
    .url("http://www.publicobject.com/helloworld.txt") 
    .header("User-Agent", "OkHttp Example") 
    .build(); 

Response response = client.newCall(request).execute(); 
response.body().close(); 

Исследуйте Interceptors для дополнительной настройки.

Смежные вопросы