2016-02-09 2 views
1

Мне нужно написать промежуточное программное обеспечение для OKHttp для перехвата всех параметров запроса send (key1=value1&key2=value2&...) и генерировать дайджест в соответствии с параметрами, а затем поместить его на определенный заголовок и отправить его вместе с запросом, я могу перехватить весь запрос осуществляется следующим образом:Перехват строк запроса

OkHttpClient httpClient = new OkHttpClient(); 
httpClient.interceptors().add(new Interceptor() { 
    @Override 
    public com.squareup.okhttp.Response intercept(Chain chain) throws IOException { 
     Request original = chain.request(); 

     String digest = "How can I get sended paramters?"; 

     Request request = original.newBuilder() 
      .header("User-Agent", "Your-App-Name") 
      .header("Digest", digest) 
      .method(original.method(), original.body()) 
      .build(); 

     return chain.proceed(request); 
    } 
}); 

Но я не могу найти способ получить список параметров! есть идеи?

+0

Почему вы не составляете строку дайджеста во время создания запроса? –

ответ

1

Это было некоторое время, но я верю, что вы можете просто сделать:

Request original = chain.request(); 
String params = original.url().query(); 

не андроид среды проверить это с на данный момент, хотя. Если не смотреть на okhttp javadoc для Request и HttpUrl

EDIT

для почтового тела есть вопрос here который я думаю, что делает то, что вы после этого, но в двух словах это что-то вроде:

Request original = chain.request(); 
Buffer buffer = new Buffer(); 
original.body().writeTo(buffer); 
String bodyStr = buffer.readUtf8(); 
+0

Как насчет значений постов? поддерживаются также значения post? – iSun

+0

отредактировал мой ответ, я думаю, это то, что вы после – jonk