Отправляя сообщение 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.

Другие вопросы по тегам