У моего клиента есть древняя служба WCF, с которой я пытаюсь работать.Я могу выполнять запросы GET без проблем, но когда я пытаюсь POST-данные, они всегда терпят неудачу.
Метод, на который я пытаюсь опубликовать, определяется следующим образом:
[OperationContract]
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped)]
DataSet SendExpense(string pDriver, string pPassword, string pTruck, Expense expense);
с помощьюПочтальон, я пытаюсь опубликовать эти данные в теле:
<SendExpense xmlns="http://tempuri.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<pDriver>test</pDriver>
<pPassword>1234</pPassword>
<pTruck>206</pTruck>
<expense>
<Id>0</Id>
<DriverID>0</DriverID>
<ItemDate>2018-10-10T18:41:57.151623-05:00</ItemDate>
<Type>2</Type>
<Amount>123.45</Amount>
<ItemDescription>This is a new expense</ItemDescription>
<TruckNum>206</TruckNum>
<TruckID>0</TruckID>
<BackupReceivedInd xsi:nil="true" />
<PaidInd>false</PaidInd>
<PaidDate>0001-01-01T00:00:00</PaidDate>
<ExportBatchID>0</ExportBatchID>
<CreationDate>0001-01-01T00:00:00</CreationDate>
<UpdatedDate>0001-01-01T00:00:00</UpdatedDate>
<Local>true</Local>
</expense>
</SendExpense>
, однако это возвращает исключение WebServiceException.Из журналов сервера я вижу, что он выполняет метод, но не работает, потому что значения Driver, Truck и Password равны NULL.
Это очень старый, хрупкий веб-сервис, поэтому изменение кода не является жизнеспособнымвариант.
Есть что-то очевидное, что я здесь упускаю?Или есть лучший способ сделать это?