Как прочитать данные, возвращенные из WebRequest в asp.net? - PullRequest
0 голосов
/ 28 марта 2009

Я пытаюсь интегрировать 3D Secure в интернет-магазин моего клиента. Мне нужно опубликовать некоторые данные в 3DGate и получить от них возвращенный результат.

Я использовал WebRequest для этого, я успешно разместил данные, но возвращенные данные - это HTML-текст, в котором есть форма и некоторые входные данные в форме. Мне нужно прочитать эти значения как Request.Form.Get("HashParams"), но из-за того, что я просто строка, я не смог этого сделать.

Есть ли способ получить эти значения формы?

Я выполняю этот веб-запрос в событии btnPayment_Click

Спасибо

Ответы [ 3 ]

1 голос
/ 28 марта 2009

Я считаю, что MadColor думает о другом сценарии; вы делаете совершенно новый веб-запрос на сервере, что означает отсутствие параметров запроса; вы имеете дело с ответом. По сути, вы стали веб-браузером, и вы должны выполнить синтаксический анализ самостоятельно.

Поскольку используемый вами интернет-магазин - это приложение, разработанное для браузеров, вам придется столкнуться с ограничениями, присущими этому формату. Вы по сути привязаны к методам «скрининга экрана», потому что сервер не видит текст ответа как что-либо кроме этого: простой текст.

Если вы имеете дело с действительным XHTML, вы можете загрузить его в XmlDocument и использовать XPath / XQuery для извлечения значений.

Если вы имеете дело со стандартным дрянным HTML, вам придется прибегнуть к некоторому синтаксическому анализу; Я бы предложил для этого регулярное выражение.

В идеале должна существовать версия интернет-магазина, не основанная на HTML, поэтому вы бы знали, что работаете с действительным XML / JSON / чем угодно, но если альтернативы нет, вы застряли, вырывая данные сами.

0 голосов
/ 28 марта 2009

Это возвращенные данные ...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- gateerr_en.htm -->
<html>
<head>
<script type="text/javascript" language="javascript">
function moveWindow() {
  document.returnform.submit();
}
</script>  
</head>

<body onLoad="javascript:moveWindow()">
<form action="urlHere" method="post" name="returnform">

    <input type="hidden" name="clientid" value="xxx">
    <input type="hidden" name="oid" value="">

    <input type="hidden" name="mdStatus" value="7">
    <input type="hidden" name="mdErrorMsg" value="Tanimlanamayan">

    <input type="hidden" name="ErrMsg" value="Tanimlanamayan">
    <input type="hidden" name="Response" value="Error">
    <input type="hidden" name="ProcReturnCode" value="99">  


    <!-- To support javascript unaware/disabled browsers -->
    <noscript>
        <center>
        An Error Occurred, Please Click to continue.<br>
        <input type="submit"  value="Submit"></center>
    </noscript> 
</form>
</body>
</html>

Мне нужно получить эти скрытые данные

0 голосов
/ 28 марта 2009

Я не вижу способа разобраться с HTML, который возвращается из WebRequest. Если вам повезет, это может быть действительный XML. В противном случае вам придется выполнить собственный анализ строки или использовать один из других анализаторов HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...