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

改造:URL正在更改

司空胤
2023-03-14

目前,我在改装方面面临一些问题。对于第二个请求,我提供给ReformInstance的URL正在更改。以下是代码:

object RetrofitClientInstance{

     private var retrofit: Retrofit? = null
     //private const val BASE_URL = "http://api.sample.com/req/";
     private const val BASE_URL = "http://test.sample.com/req/"
     private const val BASE_URL_VERSION = "v1/"


     fun getRetrofitInstance() : Retrofit {
        if (retrofit == null) {
            retrofit = Retrofit.Builder()
                    .baseUrl(BASE_URL + BASE_URL_VERSION)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build()
        }
        return this!!.retrofit!!
    }

}

以下是针对不同API请求的html" target="_blank">接口方法:

class UserLoginResponseReceiver{

    interface GetDataService {

        @FormUrlEncoded
        @POST(UrlEndPoints.USER_LOGIN_BY_FACEBOOK)
        fun loginUserByFacebook(@Field("access_token") last: String): Call<FbLoginResponse>

        @GET(UrlEndPoints.ALL_POSTS)
        fun getAllPosts() : Call<AllPostsResponse>

    }
}

UrlEndPoints.kt

object UrlEndPoints {

   const val USER_LOGIN_BY_FACEBOOK = "user/auth/facebook"
   const val ALL_POSTS = "post"
}

对于第一个请求(loginUserByFacebook),我通过调试响应获得的URL是:

http://test.sample.com/req/v1/user/auth/facebook

这很好,工作也很好。但是对于第二个请求(getAllPosts()),我得到了以下URL:

http://test.sample.com/post

“req/v1”部分完全切断!结果我没有得到想要的回应。到底是什么问题?请帮帮我。

共有1个答案

齐涛
2023-03-14

我不能重现这个,你应该尝试清理/重建你的项目,你在这里提供的代码没有错误。

这是我为测试它而添加的代码:

class AllPostsResponse
class FbLoginResponse

fun main(args: Array<String>) {
    val service = RetrofitClientInstance.getRetrofitInstance()
                     .create(UserLoginResponseReceiver.GetDataService::class.java)
    val url = service.getAllPosts().request().url()
    println(url)
}

此处返回的URL如下所示:

http://test.sample.com/req/v1/post
 类似资料:
  • 我正在开发新的android应用程序,我想在koin模块改造中添加baseurl和api_key,但我很困惑 结束点:<代码>https://api-aws-eu-qa-1.auto1-test.com/v1/car-types/manufacturer?wa_key=coding-puzzle-client-449cc9d API密钥:编码-拼图-客户端-449cc9d 基本网址: 我想添加ba

  • 我有一个场景,我必须调用具有相同基本URL的API,例如,但具有不同的。 我有一个Retrofit 2的实例,它是通过构建的: 如下所示: 对于某些,我必须调用相同的API,但在其他情况下,我必须从完全不同的调用它。如何更改实例以因此在运行时指向不同的URL? 改装实例没有

  • 问题内容: 我有一个正在使用的HAL API,并且在许多情况下,我需要将请求(使用不同的方法)发送到从API返回的URL。这意味着我不想在改造API接口中对URL的路径进行硬编码,但是我想要的只是使用对该URL的改造发送一个简单的请求。我现在正在使用Volley,并且我知道可以为此目的使用OkHttp,但我想知道Retrofit中是否有一种不错的方法来执行此操作? 问题答案: Square最近发布

  • 我制作了一个带有路由器dom的网站,不幸的是URL发生了变化,我需要刷新页面以查看正确的组件。 我已经看到了StackOverflow上的所有线程,但没有一个对我有帮助。 所以,我有一个pp.js作为主容器: 在标题我有链接: 到App.js我导入路由器、交换机和路由。为了header.js我导入路由器和链接。 所有内容都通过标准ReactDOM.render(,document.getEleme

  • 问题内容: 我有这个网址: 我需要的是能够将“行”的url参数值更改为我指定的值,比方说10。如果“行”不存在,则需要将其添加到url的末尾并添加我已经指定的值(10)。 问题答案: 在学到很多东西之后的四年后,回答我自己的问题。特别是您不应该将jQuery用于所有功能。我创建了一个可以解析/字符串化查询字符串的简单模块。这使得修改查询字符串变得容易。 您可以按以下方式使用查询字符串:

  • 问题内容: 我想向页面URL 添加一些参数。我正在加载这样的内容: 如何更改具有相同参数的URL ? 问题答案: 您可以使用HTML5 pushState API来实现。但是,只有最新的浏览器才支持它,而IE9甚至不支持IE。没有办法做到这一点。但是,有一个约定,您将使用location.hash来指示页面的状态已被ajax请求修改的页面。有关如何使用URL散列来表示你的页面上状态的更多信息,你可