You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用带认证令牌的TinyURL API缩短URL时遇字段必填错误求助

解决TinyURL API调用时"The URL field is required"错误

你的问题出在请求参数的传递方式:TinyURL的/create接口要求将待缩短的URL放在JSON格式的请求体中,而不是请求头里。另外你的代码还缺少了发送请求的关键步骤。

修正后的完整代码

Function GetTinyUrl(LongURL As String) As String
    Dim xml As Object
    Dim jsonPayload As String
    
    Set xml = CreateObject("WinHttp.WinHttpRequest.5.1")
    
    ' 构造符合要求的JSON请求体,转义URL中的双引号避免格式错误
    jsonPayload = "{""url"": """ & Replace(LongURL, """", "\""") & """}"
    
    xml.Open "POST", "https://api.tinyurl.com/create", False
    xml.SetRequestHeader "Authorization", "Bearer " & "your_api_token_here"
    xml.SetRequestHeader "Content-Type", "application/json" ' 必须声明请求体格式
    
    ' 发送请求体(之前的代码遗漏了这一步)
    xml.Send jsonPayload
    
    GetTinyUrl = xml.ResponseText
    
    Set xml = Nothing
End Function

关键修改说明

  • 新增Content-Type请求头:告诉服务器请求体是JSON格式,这是API接收参数的必要前提
  • 将URL放入JSON请求体:替代原来放在请求头的错误方式,符合TinyURL API的参数要求
  • 添加xml.Send调用:之前的代码只配置了请求但没有发送,这是请求能到达服务器的关键步骤
  • 转义URL中的双引号:用Replace处理URL可能包含的双引号,避免JSON格式解析失败

内容的提问来源于stack exchange,提问作者Jaspos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 22:12:09