Я создал этот общий и кросс-платформенный метод для поддержки формата BSON с использованием библиотеки Json.NET, чтобы мы могли более легко использовать его позже. Он отлично работает на платформе Xamarin.
public static async HttpResponseMessage PostBsonAsync<T>(string url, T data)
{
using (var client = new HttpClient())
{
//Specifiy 'Accept' header As BSON: to ask server to return data as BSON format
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/bson"));
//Specify 'Content-Type' header: to tell server which format of the data will be posted
//Post data will be as Bson format
var bSonData = HttpExtensions.SerializeBson<T>(data);
var byteArrayContent = new ByteArrayContent(bSonData);
byteArrayContent.Headers.ContentType = new MediaTypeHeaderValue("application/bson");
var response = await client.PostAsync(url, byteArrayContent);
response.EnsureSuccessStatusCode();
return response;
}
}
Метод, помогающий сериализовать данные в формате BSON:
public static byte[] SerializeBson<T>(T obj)
{
using (MemoryStream ms = new MemoryStream())
{
using (BsonWriter writer = new BsonWriter(ms))
{
JsonSerializer serializer = new JsonSerializer();
serializer.Serialize(writer, obj);
}
return ms.ToArray();
}
}
Затем вы можете использовать метод Post следующим образом:
var response = await PostBsonAsync<SamplePostRequest>("api/SomeData/Incoming", requestData);
Я имел успех с комбинацией Редактора WSDL Elipse WTP и SoapUI.
Eclipse Редактор WSDL WTP - http://wiki.eclipse.org/index.php/Introduction_to_the_WSDL_Editor
SoapUI - http://www.soapui.org/
Попробуйте это средство просмотра WSDL (онлайн):
Я использовал SOAP UI с успехом в прошлом:
http://www.soapui.org/information/WSDL_Test.html?gclid=CMOpgKnAjpgCFRBbagodxyzOqg
Это позволяет Вам методы тестирования и видеть, передает ли Ваш WSDL текущие стандарты.