RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 801170
Accepted
Segrei Ulanov
Segrei Ulanov
Asked:2020-03-19 03:50:11 +0000 UTC2020-03-19 03:50:11 +0000 UTC 2020-03-19 03:50:11 +0000 UTC

如何在 Retrofit 2 中传递动态参数。获取方法

  • 772

拥有一个生成 json 作为响应的主机。

http://example.com/get-json/getJsonPosts.php?2

其中 2 是帖子 ID。

我无法@Get传递参数。

interface Api {

    @GET("getJsonPosts.php?{id}")
    fun loadtPost(@Path("id") groupId: Int): Observable<ArrayList<Card>>
}

执行

override fun uploadData() {

   var api : Api?  = null
   api = MyApplication().connectServer()
   api!!.loadtPost(10) // Передаю параметр
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe({ e ->
            recyclerView.adapter!!.notifyItemInserted(cards.size - 1)
            for (i in 0 until e.size) {
                cards.add(Card(e[i].photoUrl,
                                e[i].title,
                                e[i].date,
                                e[i].description,
                                e[i].photoUrl,
                                e[i].likeCaunt))
          }
      })

    }

我收到一个错误

java.lang.IllegalArgumentException: URL query string "{id}" must not have replace block. For dynamic query parameters use @Query.

我现在正在尝试这个

API {

    @GET("getJsonPosts.php?")
    fun loadtPost(@Query("") groupId: Int): Observable<ArrayList<Card>>
}

我收到一个错误

io.reactivex.exceptions.OnErrorNotImplementedException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $

也许我需要像这样实现请求:

http://example.com/get-json/getJsonPosts.php?id=2

android
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    Segrei Ulanov
    2020-03-19T21:23:47Z2020-03-19T21:23:47Z

    编辑后 06/06/18

    原来,有必要像这样在服务器上接受一个 url 请求。

    http://example.com/get-json/getJsonPosts.php?id=2

    之前,我在服务器上处理了这个url来获取json。

    http://example.com/get-json/getJsonPosts.php?2

    现在@Get您可以用这种方式替换动态参数。以前,我的做法有所不同,请参阅提出的问题。

    interface Api {    
        @GET("getJsonPosts.php")
        fun loadtPost( @Query("id") id : Int): Observable<ArrayList<Card>>
    }
    

    这个怎么运作

    1. @GET 注释不仅会发送一个 GET 请求,它还.baseUrl会将getJsonPosts.php添加到它。

    2. 对生成的 @GET 请求本身添加注释 @Query ?以及由 @Query("id <- here ")指定的单词id并将替换最后的符号= 2,其中 2 是传递的参数。结果http://example.com/get-json/getJsonPosts.php?id=2

      基本网址

      fun connectServer() : Api? {
      val retrofit = Retrofit.Builder()
              .baseUrl("http://example.com/get-json/") // БАЗОВЫЙ URL.
              .addConverterFactory(GsonConverterFactory.create())
              .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
              .build()
      
      return retrofit.create(Api::class.java)
      

      }

    了解更多

    网站本身没有关于使用注释的详细信息。要查看特定注释的工作方式,请将鼠标悬停在注释上,单击并按 F4 (Windows)。您将打开源代码,在评论中您会发现它是如何工作的以及它可以生成什么 url。

    如果我帮助了你,请单击向上箭头

    • 2

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    是否可以在 C++ 中继承类 <---> 结构?

    • 2 个回答
  • Marko Smith

    这种神经网络架构适合文本分类吗?

    • 1 个回答
  • Marko Smith

    为什么分配的工作方式不同?

    • 3 个回答
  • Marko Smith

    控制台中的光标坐标

    • 1 个回答
  • Marko Smith

    如何在 C++ 中删除类的实例?

    • 4 个回答
  • Marko Smith

    点是否属于线段的问题

    • 2 个回答
  • Marko Smith

    json结构错误

    • 1 个回答
  • Marko Smith

    ServiceWorker 中的“获取”事件

    • 1 个回答
  • Marko Smith

    c ++控制台应用程序exe文件[重复]

    • 1 个回答
  • Marko Smith

    按多列从sql表中选择

    • 1 个回答
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Suvitruf - Andrei Apanasik 什么是空? 2020-08-21 01:48:09 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5