相关疑难解决方法(0)

带请求正文的HTTP GET

我正在为我们的应用程序开发一个新的RESTful Web服务.

在某些实体上执行GET时,客户端可以请求实体的内容.如果他们想要添加一些参数(例如排序列表),他们可以在查询字符串中添加这些参数.

或者,我希望人们能够在请求正文中指定这些参数. HTTP/1.1似乎没有明确禁止这一点.这将允许他们指定更多信息,可以更容易指定复杂的XML请求.

我的问题:

  • 这完全是一个好主意吗?
  • HTTP客户端在GET请求中使用请求主体会有问题吗?

http://tools.ietf.org/html/rfc2616

rest http http-get

1896
推荐指数
19
解决办法
98万
查看次数

使用Retrofit获取原始HTTP响应

我想从我的API REST获取原始http响应.我试过这个界面:

@POST("/login")
@FormUrlEncoded
Call<retrofit.Response> login(@Field("username") String login, @Field("password") String pass,
                     @Field("appName") String appName, @Field("appKey") String appKey);
Run Code Online (Sandbox Code Playgroud)

但我得到:

java.lang.IllegalArgumentException:无法为方法Api.login的retrofit.Call创建调用适配器

我这样创造Retrofit:

Retrofit.Builder retrofitBuilder = new Retrofit.Builder();
retrofitBuilder.addConverterFactory(JacksonConverterFactory.create());
Retrofit retrofitAdapter = retrofitBuilder.baseUrl(baseUrl).build();
return retrofitAdapter.create(apiClass);
Run Code Online (Sandbox Code Playgroud)

java jackson retrofit

47
推荐指数
3
解决办法
5万
查看次数

改造:如何获得请求和响应的大小?

我正在开发一个Android应用程序并使用改造来发送请求并获得响应.像这样:

public interface Service {
    @POST("/GetInfo")
    InfoResponse getInfo(@Body InfoRequest request);
}
Run Code Online (Sandbox Code Playgroud)

我想知道在执行这些请求时将使用多少数据.

我发现如果我设置LogLevel进行改造,它可以打印出日志中的大小.

要求:

---> HTTP POST http://....
Content-Type: application/json; charset=UTF-8
Content-Length: 516
---> END HTTP (522-byte body)
Run Code Online (Sandbox Code Playgroud)

对于回复:

<--- HTTP 200  http://....
:HTTP/1.1 200 OK 
Content-Type: application/json 
<--- END HTTP (420394-byte body)
Run Code Online (Sandbox Code Playgroud)

这个522字节和420394字节的信息是我想要的.有没有办法直接获取它而不获取日志并解析它?

如果我必须使用这个日志来计算大小,有什么好办法从日志中获取大小然后在android上显示?

谢谢!

logging retrofit

8
推荐指数
1
解决办法
901
查看次数

标签 统计

retrofit ×2

http ×1

http-get ×1

jackson ×1

java ×1

logging ×1

rest ×1