Я пытаюсь добавить заголовок HTTP в вызовах к службе ASMX.
Некоторые сообщения SO говорят о SOAP заголовках, а это не то, что я хочу, так как это включает добавление элементов в тело сообщения POST, а именно этой части:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope ...>
<soap:Body ...>
<q2:HeaderIn ...>
Я хочу добавить к этой части запроса - заголовки HTTP:
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 4.0.30319.42000)
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://..."
Host: ...
Content-Length: 2018
To с этой целью я обнаружил сообщение от 2015 , в котором описывается добавление ссылки на службу, выбор более старой веб-ссылки, затем выбор прокси-класса и переопределение GetWebRequest
. К сожалению, в Visual Studio 2017
выбор альтернативного прокси-класса не представляется возможным. В противном случае это был бы отличный вариант.
Вопрос: Я что-то упускаю (очевидное), что приводит к выбору прокси-класса для сгенерированного класса клиента службы ASMX?
Этот ответ на аналогичный вопрос (также этот) говорит об использовании OperationContextScope
для добавления пользовательских заголовков в запрос WCF. Я подумал, что мог бы добавить службу в качестве службы WCF и использовать ее. Преобразование кода решения из использования сгенерированного пространства имен клиента ASMX в сгенерированный клиент WCF было просто вопросом изменения пространств имен в операторах using
- все остальное было таким же.
К сожалению, на самом деле звонки с использованием Сбой клиента WCF для службы ASMX, поскольку сгенерированный XML в теле запроса совершенно другой.
Вопрос: Я что-то упустил из-за использования ASMX поверх WCF, что вызывает эту проблему, или это просто что не возможно? ( Эта статья может показаться, что это возможно.)