我有一个用Eclipse、Maven和改装版1.3制作的项目。我想迁移到Android Studio,我必须在gradle改装2.0中导入。
在我做了所有必要的改变使它工作之后,我得到了一些意想不到的东西。
我有我的改造建设者设置如下:
Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl("http://localhost:8080/openbravo/org.openbravo.service.json.jsonrest")
.client(httpClient)
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create(gson));
因此,我的服务方法更改为使用<代码>
当我执行GET方法登录时,我得到以下响应错误:
Response{protocol=http/1.1, code=404, message=Not Found, url=http://localhost:8080/ADUser?_where=username%3D%27Openbravo%27}
但网址应该是:
http://localhost:8080/openbravo/org.openbravo.service.json.jsonrest/ADUser?_where=username%3D%27Openbravo%27
有人能告诉我为什么吗?我不知道发生了什么...这在1.3上运行完美
你可以的,
将您的基本url设置为http://localhost:8080
在控制器类中,
public interface RestController {
@GET("/openbravo/org.openbravo.service.json.jsonrest/ADUser")
Whatever getData(@Path("_where") String whatever);
}
您需要在基本url的末尾添加一个尾随/。否则改装会忽略它。看见https://github.com/square/retrofit/issues/1049.
Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl("http://localhost:8080/openbravo/org.openbravo.service.json.jsonrest/")
.client(httpClient)
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create(gson));
我正在使用调用web服务,而reverfit会引发一个失败,来自“throwable”的消息会给我 我假设这是因为.NET web服务抛出了一个错误而没有返回JSON。但是为了证明这一点,我需要能够看到中的原始响应。有没有什么我能做到的? 这是我使用的代码
因此,当我对服务器进行POST API调用时,我得到一个带有JSON响应的400 Bad Request错误。 我管它叫 然而,问题是,一旦我得到响应,就调用onFailure(),这样就调用了//bb。在这里,我无法访问JSON响应。当我记录api请求和响应时,它根本不显示JSON响应。而可抛出的t是IOException。然而,奇怪的是,当我对Postman进行相同的调用时,它确实返回了预期的
正如上面的注释的改装文档中所述: 传递列表或数组将为每个非空项生成一个查询参数。 到目前为止,我的呼叫看起来如下所示: 这是可行的,但会导致相当长的URL和相当快的URL。 例如。对于,请求URL已经是。 是否有一种简单的方法来交换这种导致数组格式化为或类似内容的行为? 我想到的是: 使用JsonArray作为参数,但在调用之前,我需要转换每个数组/列表 截取每个请求并压缩重复密钥 重写内置的修饰
有没有一种方法来捕获400到599超文本传输协议状态在onFail()方法通过使用改造2.0?每当其他api返回400,401等,然后改型像200响应,并在on成功()上处理它。我怎样才能实现呢?
我在ADFS安装中使用了自签名证书。我认为我的ADFS的配置是不对的。有人能给我提供一些想法吗?
我正在使用一个查询参数来设置Google Maps API所需的值。 改装生成: 这会在需要时导致调用失败 我怎么解决这个?