У меня есть RESTful службы WCF и один из его методов использования объекта в качестве параметравызова метода RESTful WCFservice с объектом в качестве параметра из Java
[WebInvoke(UriTemplate = "save", Method = "POST", RequestFormat = WebMessageFormat.Xml, ResponseFormat= WebMessageFormat.Xml), OperationContract]
public SampleItem Create(SampleItem instance)
{
return new SampleItem() { Id = 1, StringValue = "saved" };
// TODO: Add the new instance of SampleItem to the collection
//throw new NotImplementedException();
}
Я пытаюсь вызвать этот метод из моего затмения андроида проекта. Я использую эти строки кодов
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost post=new HttpPost("http://10.0.2.2:2768/Service1.svc/save");
ArrayList<NameValuePair> nvp= new ArrayList<NameValuePair>();
nvp.add(new BasicNameValuePair("Id", "1"));
nvp.add(new BasicNameValuePair("StringValue", "yolo"));
post.setEntity(new UrlEncodedFormEntity(nvp));
HttpResponse httpResponse = httpClient.execute(post);
HttpEntity httpEntity = httpResponse.getEntity();
String xml = EntityUtils.toString(httpEntity);
Каждый раз, когда я получаю эту ошибку Method not allowed.
в XML, возвращенный метод обслуживания.
Я попытался вызвать его из браузера, но столкнулся с той же ошибкой.
скажите, пожалуйста, что я делаю неправильно и что я могу сделать вместо этого.
благодарит заранее всех, кто может помочь.
примечание: другие методы, которые не используют объект в качестве параметра, работают нормально.
EDIT: попытался Fiddler2 с успехом. но снова заглох.
Я попытался использовать метод SampleItem Create(SampleItem instance)
с адресом http://localhost:2768/Service1.svc/save
и он работает. метод возвращает объект в формате XML.
в стельку я добавил тело запроса в <SampleItem xmlns="http://schemas.datacontract.org/2004/07/WcfRestService1" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Id>1</Id><StringValue>saved</StringValue></SampleItem>
, но проблема в том, что я не могу найти способ, чтобы добавить этот XML-строку в HttpPost или HttpRequest как requestbody затмение андроида проект.
Примечание: передавая строку XML в качестве заголовка или UrlEncodedFormEntity не работал.
Это было действительно полезно, но я хотел использовать XML для передачи объектов и из службы WCF. вы могли бы помочь с этим или любыми предложениями по использованию JSON или XML. –
Я пробовал скрипач, но все еще застрял. пожалуйста, если вы увидите мое редактирование и общий доступ. –