Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp classic 经典asp使用addheader调用api进行授权_Asp Classic - Fatal编程技术网

Asp classic 经典asp使用addheader调用api进行授权

Asp classic 经典asp使用addheader调用api进行授权,asp-classic,Asp Classic,我有一个调用api的页面,该api在测试模式下不需要任何授权。 我们现在正转向一个需要用户名和密码的实时环境 api提供程序已发送以下消息: 要访问这些服务,请通过添加以下HTTP头发送请求。 授权:基本Base64Encode(“用户名:密码”) 我不确定正确的语法,不知道是否有人能帮我 最初的呼叫(并且工作正常)是: 上面的代码抛出一个错误 /api-test.asp |20|800a000d|Type_mismatch:_'Base64Encode' /api-test.asp | 20

我有一个调用api的页面,该api在测试模式下不需要任何授权。
我们现在正转向一个需要用户名和密码的实时环境

api提供程序已发送以下消息:

要访问这些服务,请通过添加以下HTTP头发送请求。 授权:基本Base64Encode(“用户名:密码”)

我不确定正确的语法,不知道是否有人能帮我

最初的呼叫(并且工作正常)是:

上面的代码抛出一个错误

/api-test.asp |20|800a000d|Type_mismatch:_'Base64Encode' /api-test.asp | 20 | 800a000d |类型|不匹配:u'Base64Encode'
非常感谢您的帮助。

正如我在中提到的,
授权
标题的语法不正确

API示例不需要
“Base64Encode('username','password')”
这是API提供的一个示例,它向您展示了如何获取字符串
“username:password”
并对其进行Base64编码,这正是
授权
头所需要的

但是您仍然需要有
Base64Encode()
函数定义才能使代码正常工作

Base64Encode()
MyASC()
函数取自

这样的事情应该行得通



Base64Encode()
是一个建议的函数(不是内置的,但在线上有很多示例),用于base64编码字符串
“username:password”
,该字符串在
授权
标题中传递。一旦你有了这个函数,
AddHeader
应该看起来像
xmlObj.AddHeader“Authorization”,“Basic”,Base64Encode(username&“:”和password)
(假设
username
password
是之前设置的变量。此时你刚刚传递了一个
Base64Encode>字符串('username','password')”
服务器将拒绝该请求。感谢您的回复。根据建议(设置变量),将代码更改为:xmlObj.AddHeader“Authorization”,“Basic”,Base64Encode(username&“:”&password)。我现在得到了错误-/api-test.asp | 20 | 800a000d |类型|不匹配:UU'Base64Encode'-有什么建议吗?就像我说的函数
Base64Encode()
不是已知的经典asp,但是在web上有很多该函数的示例。这个错误告诉你它不理解什么
Base64Encode()
是,要更正此错误,请将函数定义从web上的某个位置复制到您的ASP代码中。也许这会有所帮助。我猜这就是API示例的来源。您好,很抱歉延迟回复您-我仍在试图了解您发布的内容。如果我可以尝试用外行术语说明此问题,我需要以64为基础在将用户名和密码传递到xmlObj.AddHeader中的api之前,在函数中对其进行编码。我假设我可以使用在线函数对用户/pass进行Base64编码,然后在调用中对其进行硬编码??好的,code.xml.Open中的两个小错误需要是xmlObj.Open和“Basic”,Base64编码(用户名和“:”&密码)需要是“Basic”和Base64Encode(用户名和密码)(我想!!)或者错误的\u参数数\u或无效的\u属性\u赋值:\u'setRequestHeader'被抛出。在进行这些更改后,我现在得到了这个错误:安全性\u证书\u访问所需的\u此\u资源\u无效。@user2369824您是对的,很抱歉只是伪编码。已经更正了它,但我认为
“Basic”和Base64Encode(username&“:“&password)
需要一个空格(请参见我的编辑)。例如,它应该类似于
授权:Basic qwxhzgrpjpvcgvuihnlc2ftzq==
(示例取自)。相应地修改了代码,为了解决我上一篇评论中的安全证书问题,我通过https调用了我的页面。现在加载页面大约需要10秒钟,但我只得到一个空白页面。@user2369824当然,您将得到一个空白页面,它将xml加载到XMLDOM对象中,但代码接下来做什么?您必须告诉它显示。我想你以前说过这有用吗?这意味着什么? /api-test.asp |20|800a000d|Type_mismatch:_'Base64Encode'