Я хочу создать динамическую структуру, чтобы клиент мог запрашивать сервер в веб-API. Я попытался использовать следующий код для решения моего вопроса, однако он не работает.
- Как я могу отправить общий тип, например
<travel>
, в службу- Как я могу изменить код сервера (или вообще нужно изменить клиент/сервер)?
PS: Спасибо за терпение, если вы дочитали мой вопрос до конца.
Код клиента
var serializer = new JavaScriptSerializer();
var product = new travel() { travel_desc = "select * from travel" };
var jsonText = serializer.Serialize(product);
var client = new HttpClient();
client.BaseAddress = new Uri("http://localhost:65370/");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
StringContent content = new StringContent(jsonText, Encoding.UTF8, "application/json");
var z = client.PostAsync<travel>("api/bb", product, new JsonMediaTypeFormatter()).Result;
Код сервера, который не работает
public IHttpActionResult Post< T > (Object x) where T : new()
{
........................
}
кстати все нормально но я не знаю как отправить ‹ T > на сервер
public IHttpActionResult Post(Object x)
{
........................
}
Сообщение об ошибкеClient call server, server will be getting an error message " StatusCode: 404, ReasonPhrase: 'Not Found' "
var z = client.PostAsync < travel > ("api/dd", product, new JsonMediaTypeFormatter()).Result; <--client
public class ddController< T > : ApiController {public virtual void Post() { ... } } <---server
// sorry all , my English isn't very well , so I will try to use code to tell everyone how i want
// in format situations,I will create 2 controller when I have 2 models(ex: users/product) , as following (client)
var a = client.PostAsync("api/users", users, new JsonMediaTypeFormatter()).Result;
var b = client.PostAsync("api/product", product, new JsonMediaTypeFormatter()).Result;
//and then when the users and product controllers was created the post code should be like as following (server)
public IHttpActionResult Postusers(users travel) {}
public IHttpActionResult Postproduct(product travel) {}
//now i just want to create 1 controller for above like as follwing
var b = client.PostAsync<users/product>("api/all", product, new JsonMediaTypeFormatter()).Result;(client)
public IHttpActionResult Post<T>(Object ForAll) where T : new() {} (server)