Отправляя сообщение XMLHTTP с помощью foxpro, я получаю результат "Ошибка аутентификации требует полных учетных данных"
Я использую этот код и вместо этого возвращаюсь в 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 ответ
Базовый XHR здесь верный, но вы не предоставляете достаточные учетные данные для https://api.ahds.com/ext/apitest.php
оказание услуг. Вам нужно будет связаться с ahds.com, чтобы получить правильный формат, который их API ожидает, что учетные данные для аутентификации будут предоставлены как.
Скорее всего, они захотят добавить их в заголовки HTTP, аналогично тому, как вы используете xhr.setRequestHeader
добавить заголовок Content_Type.