当前位置: 首页 > 知识库问答 >
问题:

改装@GET-如何显示请求字符串?

王兴腾
2023-03-14

我正在开发一个Android应用程序,它使用改造来创建一个restful客户端。为了调试网络调用,我想显示或转储实际被调用的url。有办法做到这一点吗?我在下面提供了一些代码,显示了应用程序当前如何使用翻新。

客户端接口定义:

import retrofit.Callback;
import retrofit.http.Body;
import retrofit.http.GET;
import retrofit.http.Headers;
import retrofit.http.POST;
import retrofit.http.Path;

// etc...

 public interface MyApiClient {

    @Headers({
            "Connection: close"
    })

    @GET("/{userId}/{itemId}/getCost.do")
    public void get(@Path("userId") String userId, @Path("itemId") String userId, Callback<Score> callback);


//....etc 

}

使用生成的客户端的服务:

// etc...
    import javax.inject.Inject;
    import retrofit.Callback;
    import retrofit.RetrofitError;
    import retrofit.client.Response;


@Inject
MyApiClient myApiClient;

// etc...
               myApiClient.getCost(myId, itemId, new Callback<Cost>() {
                     @Override
                    public void success(Cost cost, Response response) {
                        Log.d("Success: %s", String.valueOf(cost.cost));
                        if (cost.cost != -1) {
                            processFoundCost(cost);
                        } else {
                            processMissingCost(itemId);
                        }
                        stopTask();
                    }

                    @Override
                    public void failure(RetrofitError error) {
                        handleFailure(new CostFailedEvent(), null);
                    }
                });
            }

共有3个答案

邢焱
2023-03-14

是的,您可以通过在RestAdapter上调用setLogLevel()来启用调试日志记录。

我通常将日志设置为LogLevel。完整的用于调试构建,如:

RestAdapter adapter = builder.setEndpoint("example.com")
    .setLogLevel(BuildConfig.DEBUG ? RestAdapter.LogLevel.FULL : RestAdapter.LogLevel.NONE)
    .build();

这将自动打印出与您的HTTP请求相关联的所有信息,包括您点击的URL、标头以及请求和响应的主体。

桂志新
2023-03-14

RetrofitError有一个返回URL的getUrl()方法。

另外,响应在回调中也有一个getUrl()方法。

您也可以根据以下问题指定日志级别:

RestAdapter adapter = (new RestAdapter.Builder()).
//...
           setLogLevel(LogLevel.FULL).setLog(new AndroidLog("YOUR_LOG_TAG"))              

尽管基于文档,LogLevel。基本的应该做你需要的事情。

BASIC
Log only the request method and URL and the response status code and execution time.
康鹏云
2023-03-14

打电话。请求()。url(),其中call2的类型。打电话

 类似资料:
  • 我已经做了一个简单的场景登录在ASP点网络应用程序。但是我在登录时发送的请求在执行时显示为GET。第一个图像是HTTP请求的屏幕截图,第二个图像是执行时请求详细信息的屏幕截图。如何将该请求转换为POST请求?还添加了显示“对象移动到这里”消息的响应数据截图。

  • 我使用下面的代码来创建一个条目在strapi服务器,但不幸的是,我得到了"坏请求"错误。我想不出来。请指导我如何解决这个问题。 ApiSet。班 主要活动。班 我的身体。班 还有我的模型课 数据班 属性。班 最后,我得到了如下回应: 我只是想知道我在哪里犯了错误

  • 我似乎在改装文档中找不到任何关于如何显示任何请求详细信息的内容。 具体来说,我希望看到来自POST请求主体的JSON。 问题是,我对服务器的请求失败,没有任何详细信息,我怀疑我这边出了问题。

  • 问题内容: 我想要的是具有更改页面一部分的链接,以及它的动态URL,在这里可以指定诸如 单击此处进行精确演示 所以这是我需要的链接格式: 我必须像链接变量和这样我就可以改变一个页面上的多个万物而不realoading。 或诸如http://www.wbhomes.com.au上的另一种格式,这 正是 我想要的,但是第一种格式也不错,但这要漂亮得多。 要求 需要从任何地方访问,例如邮件,或者我只写在

  • 我的问题很简单,我已经请求了JSONYouTubev3数据API,但是,我想显示从链接请求的数据:https://www.googleapis.com/youtube/v3/channels?part=statistics

  • 这是我用于网络调用的函数。 接口类 收到400个错误请求。 错误日志 任何帮助都将不胜感激。