使用foxpro发送XMLHTTP帖子,我得到结果“Auth failure需要完整凭据”

时间:2014-02-04 13:25:35

标签: foxpro xmlhttprequest

我正在使用此代码,而是返回lcResultText我期望的响应 我回来了结果:

Auth failure needs full credentials

这是我的代码:

LOCAL xhr xhr = CREATEOBJECT("Microsoft.XMLHTTP")

xhr.Open("post", "https://api.ahds.com/ext/apitest.php",.f.,"qqq","qqqq")
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded') xhr.send("custid="+"wwwaaaaaaa"+"&username="+"daaaaaad"+"&password="+"aaaaaaaa"+"&data="+lcMyData)

PUBLIC lcResultText

DO WHILE .T.

  IF XHR.readyState =4 EXIT XHR.readyState
  ENDIF

  ?XHR.readyState

ENDDO ?XHR.readyState ?xhr.status

lcResultText = xhr.responseText

? lcResultText xhr = null

Function UrlEncode( tcValue, llNoPlus )

  LOCAL lcResult, lcChar, lnSize, lnX

  * Do it in VFP Code

  lcResult=""

  FOR lnX=1 to len(tcValue)

    lcChar = SUBSTR(tcValue,lnX,1)

    IF ATC(lcChar,"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789") > 0

      lcResult=lcResult + lcChar

      LOOP
    ENDIF

    IF lcChar=" " AND !llNoPlus

      lcResult = lcResult + "+"

      LOOP
    ENDIF

  * Convert others to Hex equivalents

  lcResult = lcResult + "%" + RIGHT(transform(ASC(lcChar),"@0"),2)

ENDFOR 


RETURN lcResult

1 个答案:

答案 0 :(得分:0)

此处的基本XHR是正确的,但您没有为https://api.ahds.com/ext/apitest.php服务提供足够的凭据。您需要联系 ahds.com 以获取其API期望提供身份验证凭据的正确格式。

最有可能的是,他们希望将它们添加到HTTP标头中,类似于您现有使用xhr.setRequestHeader添加 Content_Type 标头。