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

如何从volley库[复制]向请求添加标头

冯野
2023-03-14

我正在使用kotlin开发一个android应用程序,在这条道路上,我想使用请求来响应restall服务器...现在看看我从服务器请求它的代码,它是真的,但我不知道如何将头的参数添加到我的请求

fun sendCode(){
    val URL = "https://RestfulSms.com/api/MessageSend"
    val body : JSONObject = JSONObject()
    val header : JSONObject = JSONObject()
    body.put("Messages",messageText )
    body.put("MobileNumbers",PhoneNumber )
    body.put("LineNumber","***********")
    body.put("SendDateTime","")
    body.put("CanContinueInCaseOfError","false")

    val request :JsonObjectRequest = JsonObjectRequest(Request.Method.POST,
        URL,
        body,
        Response.Listener<JSONObject> { response ->
            Log.e(tag, response.toString())
        },
        Response.ErrorListener{ error ->
            Log.e(tag, error.message )
        })


    //request.headers.put("Content-Type","application/json")
    header.put("x-sms-ir-secure-token",tokenKey)
    queue.getCache().clear();
    queue.add(request)
}

共有2个答案

吕志诚
2023-03-14

我发现了我的问题,解决方法如下

我只是用JsonObjectRequest替换object,然后使用覆盖getHeaders函数

            val request :JsonObjectRequest = object : JsonObjectRequest(Request.Method.POST,
            URL,
            body,
            Response.Listener<JSONObject> { response ->
                Log.e(tag, response.toString())
            },
            Response.ErrorListener{ error ->
                Log.e(tag, error.message )
            }) {

            @Throws(AuthFailureError::class)
            override fun getHeaders(): Map<String, String> {
                val headers = HashMap<String, String>()
                headers.put("Content-Type", "application/json");
                headers["x-sms-ir-secure-token"] = tokenKey
                return headers
        }
都超英
2023-03-14

在问这些问题之前,请搜索留档和其他帖子。Volley是一个标准库,提供了一个很好的留档。

查看此帖子https://stackoverflow.com/a/44049327/4491971

 类似资料:
  • 我使用的是Swagger 2.0和Swagger UI 3.0.3。 在我的api_定义中。yaml在我的路径之前有以下内容: 这将在Swagger UI中添加一个授权按钮,用户可以在其中粘贴他们的API密钥。我希望此API密钥在每个请求的请求标头中发送。但这不会发生,我不确定为什么。我错过了什么吗? 编辑: 请求似乎发出了,我回来了。 Chrome开发工具显示以下请求头: 我有路径设置为: 定义

  • 我正在尝试使用JQuery在Ajax中向请求添加头。 以下是代码:- 然后我使用了要求(要求是chrome火狐插件,我们可以手动添加一个标题到请求)。 手动添加标题后:- 在这两个pics请求头中,“ACCESS-CONTROL-request-HEADERS”中都有x-auth-token,但第二个pic中有“x-auth-token”头和头值,而第一个pic中没有。 所以我的问题是如何使用JQ

  • 我创建了一个基于wsdl文件的客户机。 这可能是因为web服务是用C#编写的,而且最有可能的是,它需要oasis头,在其中存储用户名和密码值。 我现在能创造的新环境是: 所需的enevelope如下:

  • 很好的一天! 我的应用程序使用简单的http客户端-服务器通信,通过客户端的凌空库建立。首先,我启动一个授权请求: 之后,我请求列出与当前用户相关的设备列表。此时,我收到了来自响应标题的cookei。auth请求的完整标头响应输出: 缓存控制——没有存储,没有缓存,必须重新验证,后检查=0,预检查=0 在身份验证请求的onResponce回调中,我将Set Cookie值作为sessionId,并

  • 问题内容: 我正在尝试访问网站,但无法将收集到的“ Cookie”添加到传出的POST请求标头中。我已经能够验证它们是否存在于CookieManager中。 HtmlUnit的任何替代方法也将不胜感激。 问题答案: 我发现可以使用WebClient中的setadditionalHeader()添加标题。

  • 问题内容: Retrofit 2的文档说: 可以使用OkHttp拦截器指定需要添加到每个请求的标头。 使用以前的版本以下是相关的质量检查)可以轻松完成此操作。 但是,使用改型2,我找不到类似的东西或方法,其可应用于对象。 此外,它似乎没有在OkHttp了。Retrofit的文档向我们介绍了Interceptor,我不太了解如何将其用于此目的。 我怎样才能做到这一点? 问题答案: OkHttpCli