在XML中编写HTTP头部信息

3

我需要用XML格式编写HTTP请求到Yelp API。

    GET /v2/business/yelp-san-francisco HTTP/1.1
Host: api.yelp.com
Authorization: OAuth realm="",oauth_consumer_key="xxxxxxxxxxxxxxxx",oauth_token="xxxxxxxxxxxxxxxx",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1402918725",oauth_nonce="vCTAQl",oauth_version="1.0",oauth_signature="xxxxxxxxxxxxxxxx"
Cache-Control: no-cache
Postman-Token: 338ad760-49be-df0b-a4ba-3eaa12586cd1

我该如何在XML中实现它?我尝试了以下方式:

<property name="yelp.apiUri" value="http://api.yelp.com/v2/" />
    <property name="yelp.oauth.consumerKey" expression="$func:consumerKey" />
    <property name="yelp.oauth.consumerKeySecret" expression="$func:consumerKeySecret" />
    <property name="yelp.oauth.accessToken" expression="$func:accessToken" />
    <property name="yelp.oauth.accessTokenSecret" expression="$func:accessTokenSecret" />

    <property name="yelp.oauth.nonce" value="dummynonce"/>
    <property name="yelp.oauth.timestamp" value="dummytimestamp"/>

    <property name="Authentication" expression="fn:concat(
    'OAuth realm=',
    'oauth_consumer_key=', get-property('yelp.oauth.consumerKey'),
    'oauth_token=', get-property('yelp.oauth.accessToken'),
    'oauth_signature_method=HMAC-SHA1',
    'oauth_timestamp=', get-property('yelp.oauth.timestamp'),
    'oauth_nonce=', get-property('yelp.oauth.nonce'),
    'oauth_version=1.0',
    'oauth_signature=', get-property('yelp.oauth.accessTokenSecret')
    )"/>

但是它没有起作用。

1
你的配置文件说“身份验证”,但是你的头部要求“授权”。在Yelp中有区别吗? - helderdarocha
1
@helderdarocha,即使我更改了我的编码,我仍然无法发送请求。 - user3599703
1
那只是猜测,实际上我对yelp一无所知。在文档中不是很容易找到吗?他们一定有一些配置示例。 - helderdarocha
1个回答

2

您的头部标签存在错误,请将属性标签替换为头部标签,并像下面这样修改您的代码:

    <header name="Authorization" expression="fn:concat(
    'OAuth realm=&quot;&quot;',
    ',oauth_consumer_key=&quot;',get-property('yelp.oauth.consumerKey'),'&quot;',
    ',oauth_token=&quot;',get-property('yelp.oauth.accessToken'),'&quot;',
    ',oauth_signature_method=&quot;HMAC-SHA1&quot;',
    ',oauth_timestamp=&quot;',get-property('yelp.oauth.timestamp'),'&quot;',
    ',oauth_nonce=&quot;',get-property('yelp.oauth.nonce'),'&quot;',
    ',oauth_version=&quot;1.0&quot;',
    ',oauth_signature=&quot;', get-property('yelp.oauth.signature'),'&quot;'
    )" scope="transport" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接