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

如何在FileMaker计算中格式化XML适配eBay Insert from URL API?

解决FileMaker里eBay API请求"Unsupported verb"错误的方案

先搞懂问题根源

错误代码2的"Unsupported verb"其实不是XML格式的问题——你已经验证过XML是对的,问题出在eBay API没识别到正确的HTTP请求方法,或者请求头里的API操作名没传对。

具体修复步骤

1. 强制指定POST请求方法

FileMaker的Insert from URL默认可能用GET,但eBay API大多需要POST。在cURL选项里必须加上:

-X POST

同时要设置正确的Content-Type头,告诉eBay你发的是XML:

-H "Content-Type: text/xml"

2. 检查XML的操作名和命名空间

eBay API靠XML根节点的操作名识别请求类型,比如调用GetItem接口的XML必须是:

<?xml version="1.0" encoding="utf-8"?>
<GetItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">
  <!-- 你的参数内容 -->
</GetItemRequest>

注意根节点名(比如GetItemRequest)要和你调用的API接口完全匹配,命名空间也不能错。

3. 修正FileMaker里XML的转义方式

虽然数据查看器里的XML是对的,但cURL计算里的转义容易出问题:

  • 别用反斜杠转义引号,FileMaker里字符串内的引号要用双引号转义(比如"这是一个""带引号""的字符串")
  • 把整个XML包在cURL的--data参数里,要么用单引号包裹XML(如果cURL支持),要么用双引号并转义内部的引号:
    --data '<?xml version="1.0" encoding="utf-8"?><GetItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">...</GetItemRequest>'
    
    或者在FileMaker计算里这么写:
    "--data \"<?xml version=\"1.0\" encoding=\"utf-8\"?><GetItemRequest xmlns=\"urn:ebay:apis:eBLBaseComponents\">...</GetItemRequest>\""
    

4. 完整的cURL选项示例

把所有必要参数拼在一起,替换成你自己的API密钥:

"-X POST -H \"Content-Type: text/xml\" -H \"X-EBAY-API-APP-ID: 你的APP_ID\" -H \"X-EBAY-API-DEV-ID: 你的DEV_ID\" -H \"X-EBAY-API-CERT-ID: 你的CERT_ID\" -H \"X-EBAY-API-CALL-NAME: GetItem\" -H \"X-EBAY-API-SITE-ID: 0\" --data \"<?xml version=\"1.0\" encoding=\"utf-8\"?><GetItemRequest xmlns=\"urn:ebay:apis:eBLBaseComponents\"><ItemID>123456789</ItemID></GetItemRequest>\""

注意X-EBAY-API-CALL-NAME必须和XML根节点的操作名一致,比如GetItem对应GetItemRequest。

其他可行方案

1. 用FileMaker的XML函数生成XML

手动写XML容易出错,用XMLCreateElement这类函数自动生成,避免转义问题:

XMLCreateElement("GetItemRequest"; 
  XMLCreateAttribute("xmlns"; "urn:ebay:apis:eBLBaseComponents");
  XMLCreateElement("ItemID"; "123456789")
)

生成的XML直接传到cURL的--data参数里就行。

2. 拆分请求配置到字段里

把请求头、XML内容分别存在FileMaker字段中,再在cURL计算里引用字段,减少转义的麻烦:

  • 建个字段cURL_Headers存:-H "Content-Type: text/xml" -H "X-EBAY-API-APP-ID: 你的APP_ID"
  • 建个字段API_XML存生成好的XML
  • cURL选项计算写成:"-X POST " & cURL_Headers & " --data \"" & API_XML & "\""

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 17:23:32