Ax ios POST-запрос получает ОШИБКУ в настольном приложении, но тот же URL-адрес работает в браузере - PullRequest
0 голосов
/ 14 июля 2020

Я создаю приложение, которое собирает и объединяет множество данных о недвижимости с разных сайтов.

У меня проблема с одним из сайтов. Я отправляю запрос Ax ios POST с необходимыми form данными.

Когда я беру эту точную строку url и ввожу ее в браузере, я попадаю на нужную страницу. Однако использование тех же данных с моего собственного сервера возвращает следующее:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd" >
<html>
<head>
<title>Search Results</title>
<meta http-equiv="Content-type" content="text/html;charset=utf-8">
<meta name="robots" content="noindex">
</head>

<form method=post>
<body bgcolor=WHITE text=BLACK link=GOLDENROD vlink=RED 
      alink=RED>
<input type=hidden name=POSTDATA value='{"ms_user":"monm","passwd":"data","srch_type":"1","select_cc":"0701","district":"0714","adv":"1","out_type":"2","ms_ln":"50","p_loc":"143-145+Chadwick+Ave","owner":"","block":"","lot":"","qual":""}' >
<input type=hidden name=pageno value='1' >
ERROR

Я попытался отправить запрос POST со всей строкой запроса, как это было бы в браузере. Вот что это будет: https://tax1.co.monmouth.nj.us/cgi-bin/inf.cgi?ms_user=monm&passwd=data&srch_type=1&select_cc=0701&district=0714&adv=1&out_type=2&ms_ln=50&p_loc=141-143+Chadwick+Ave&owner=&block=&lot=&qual=

Я также пробовал отправить POST с data object вот так:

let asessmentURL = `https://tax1.co.monmouth.nj.us/cgi-bin/inf.cgi?`

        //First we grab the body of the html with axios
        const response = await axios.post(asessmentURL, {
            'ms_user': 'monm', 
            'passwd': 'data',
            'srch_type': '1',
            'select_cc': '0701', 
            'district': '0714',
            'adv': '1',
            'out_type': '2',
            'ms_ln': '50',
            'p_loc': '143-145+Chadwick+Ave',
            'owner': '',
            'block': '',
            'lot': '',
            'qual': ''
        }, { headers: { 'User-Agent': 'Mozilla/5.0' } 
        })
        .then(response => console.log("RESPONSE: ", response.data))

Я также пробовал использовать POSTMAN для отправки запрос, и он возвращает те же HTML и ERROR, что и приложение на моем сервере.

Есть идеи? Пожалуйста, и заранее спасибо.

1 Ответ

0 голосов
/ 18 июля 2020

Я исправил! Были две ловушки, о которых я хотел бы упомянуть, если кто-нибудь однажды пойдет по этому пути. , Я добился желаемых результатов, используя запрос GET. Проведя небольшое исследование, я обнаружил, что CGI отправка формы должна быть GET запросами.

После этого я больше не получал ту же ошибку. Теперь я получал ошибку «свойство не найдено». Я заметил, что адрес передается с + вместо пробелов. Я добавил %20 для правильного интервала и вуаля !!!

...