2016-05-05 3 views
0

Ich bin asp.net Entwickler. Ich habe Square Connect Api für die Zahlung verwendet. Unten ist mein Code zum Aufladen der Karte nonce. Aber ich bekomme einen Fehler (nicht unterstützter Medientyp \ "application/x-www-form-urlencoded \", nur [application/json] sind erlaubt) als Antwort. Lösungen werden geschätzt.422 Fehler beim Laden der Karte Nonce mit Square Connect

Platz Connect REQUEST :::

 RestSharp.RestClient Client = new RestSharp.RestClient("https://connect.squareup.com"); 
     RestSharp.RestRequest Request = new RestSharp.RestRequest("v2/locations/"+LocationId+"/transactions", RestSharp.Method.POST); 
     Request.RequestFormat = RestSharp.DataFormat.Json; 
     Request.AddHeader("Authorization", "Bearer " + access_token); 
     Request.AddHeader("Accept", "application/json"); 
     Request.AddHeader("Content-Type", "application/json"); 

     Request.AddParameter("name", "test"); 
     Request.AddParameter("card_nonce", card_nonce); 
     Request.AddParameter("amount_money", "{\"amount\":100,\"currency\":\"USD\"}"); 
     //Request.AddParameter("idempotency_key", Guid.NewGuid().ToString()); 

     RestSharp.IRestResponse response = Client.Execute(Request); 
     System.Net.HttpStatusCode getresponse = response.StatusCode; 

Antwort von Platz Up: { "Fehler": [{ "Kategorie": "INVALID_REQUEST_ERROR", "Code": "BAD_REQUEST", "Detail": "nicht unterstützter Medientyp \" application/x-www-form-urlencoded \ ", nur [application/json] sind erlaubt"}]}

Antwort

0

(Angemessene Warnung, dass ich keine vorherige Erfahrung mit RestSharp habe.)

Es scheint, dass wenn creat Wenn Sie eine Anfrage mit einem Body (d. h. einem POST oder einem PUT) absetzen, müssen Sie den Inhaltstyp der Anfrage mit der Methode AddParameter und nicht mit der Methode AddHeader festlegen.

Wie this answer zeigt, wenn Ihre Anfrage einen Körper hat, rufen Sie AddParameter nur einmal:

Request.AddParameter("application/json", strJSONContent, ParameterType.RequestBody); 

Der erste Parameter gibt den Inhaltstyp, der zweite Parameter ist die gesamte JSON-String Sie stellen , und der dritte Parameter gibt an, dass die JSON-Zeichenfolge als Anforderungshauptteil verwendet werden soll.

Dies bedeutet, dass Sie die JSON-Zeichenfolge erstellen müssen, die Sie POST vor dem Aufrufen dieser Methode erstellen möchten.

+0

Vielen Dank. Es ist Arbeit für mich. – Bhavini