2016-06-05 32 views
0

Ich versuche, ein Formular an einen Server mit WebClient POST. Hier ist mein Code für die Anfrage.webClient POST funktioniert nicht

WebClient myWebClient = new WebClient(); 

NameValueCollection myNameValueCollection = new NameValueCollection(); 

myNameValueCollection.Add("about", about); 
myNameValueCollection.Add("firstname", firstname); 
myNameValueCollection.Add("lastname", lastname); 
Uri uri = new Uri("http://192.168.1.102:1992/api/member/updateprofile"); 
myWebClient.UploadValuesAsync(uri,"POST", myNameValueCollection); 

Diese Anforderung führt nicht zum Server. Ich habe die Url überprüft und es ist korrekt, wie ich mit Fiddler und httpWebRequest Client Anfrage stellen kann. Ich sehe nichts falsch mit meinem Code. Was könnte das Problem hier sein?

Mein Server-Side-Code sieht wie folgt aus:

[HttpPost] 
[Route("updateprofile")] 
public HttpResponseMessage updateProfile() 
{ 
    var result = new HttpResponseMessage(HttpStatusCode.OK); 

    var httpRequest = HttpContext.Current.Request; 

    return result; 
} 
+0

Ok, Sie zeigen die Attribut-Route auf der Aktion. Es gibt jedoch keine Details zum Routen-/Routen-Präfix des Controllers, die mit der von Ihnen angezeigten URL übereinstimmen. Bestätigen Sie die Routen und dass Sie sie richtig konfigurieren. – Nkosi

Antwort

0

Ok, das Attribut Route an der Aktion zeigen. Es gibt jedoch keine Details zum Routen-/Routen-Präfix des Controllers, die mit der von Ihnen angezeigten URL übereinstimmen.

[RoutePrefix("api/member")] 
public class MemberController : ApiController { 

    //eg POST api/member/updateprofile 
    [HttpPost] 
    [Route("updateprofile")] 
    public HttpResponseMessage updateProfile() { 
     var result = new HttpResponseMessage(HttpStatusCode.OK); 

     var httpRequest = HttpContext.Current.Request; 

     return result; 
    } 
} 

bestätigen Sie Ihre Routen und dass Sie sie richtig konfigurieren.

public static class WebApiConfig 
{ 
    public static void Register(HttpConfiguration config) 
    { 
     // Attribute routing. 
     config.MapHttpAttributeRoutes(); 

     // Convention-based routing. 
     config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 
    } 
} 
+0

Die Route ist richtig konfiguriert. RoutePrefix sieht folgendermaßen aus: [RoutePrefix ("api/member")]. Es ist nichts falsch mit der Url. Ich habe es mit Fiddler überprüft und es funktioniert gut. –

+0

Lassen Sie Fiddler laufen und schauen Sie, was es sieht, wenn Sie Ihren Code ausführen. überprüfen Sie die rohe Anfrage und vergleichen Sie sie mit denen, die funktionierten. Das sollte Ihnen eine Vorstellung davon geben, was Ihr Problem verursachen könnte – Nkosi