0

I have been working through the new WebAPI over on the asp.net site. I've created a few samples using simple strings that I can GET. I am looking to see if I can now POST and PUT to the service.

I am looking to see how I should add an object to the request that I can then POST or PUT from a .net 3.5 console application. The object I am trying to send is just a simple User class with Name, Surname, and UserID.

From my testing it seems that I can serialize this and send it via the URI but that hardly seems correct. I notice that these requests have headers, can I put the data in there?

2 Answers 2

4

Using .NET 3.5, there are not many elegant options I think but this code using WebClient works (you need adding reference to System.Web.Extensions):

WebClient client = new WebClient();
JavaScriptSerializer serializer = new JavaScriptSerializer();
var data = serializer.Serialize(new {Name = "Ali", Title = "Ostad"});
client.Headers[HttpRequestHeader.ContentType] = "application/json";
var downloadString = client.UploadString("http://localhost:59174/api/values", data); // value is "Ali"

And here is controller action:

// POST /api/values
public string Post(JsonValue value)
{
    return value.AsDynamic().Name;
}
Sign up to request clarification or add additional context in comments.

Comments

1

Check out the HttpClient on NuGet. This makes it easy to do most things over http.

And here's an example of using it.

2 Comments

Does this client work with .net 3.5 (Winforms / Console / WPF / Silverlight) ?
As far as I know the HttpClient (part of WCF Web Api) is .NET 4 but an older build is available for .net 3.5 - see stackoverflow.com/questions/8257652/…

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.