Ich muss JSON-Daten von einer externen Domain erhalten. Ich habe Webrequest verwendet, um die Antwort von einer Website zu erhalten. Hier ist der Code:
var request = WebRequest.Create(url);
string text;
var response = (HttpWebResponse) request.GetResponse();
using (var sr = new StreamReader(response.GetResponseStream()))
{
text = sr.ReadToEnd();
}
Weiß jemand, warum ich die JSON-Daten nicht bekommen kann?
c#
.net
json
webrequest
h3n
quelle
quelle
using (var response = request.GetResponse()){ ... }
. Löst das Problem möglicherweise nicht, spart jedoch das Ressourcenleck.Antworten:
Sie müssen explizit nach dem Inhaltstyp fragen.
Fügen Sie diese Zeile hinzu:
Am richtigen Ortrequest.ContentType = "application/json; charset=utf-8";
quelle
Accept
Headers mit bestimmten Typen zu antworten , der Server ignoriert dies jedoch möglicherweise aus anderen Gründen.Einige APIs möchten, dass Sie den entsprechenden "Accept" -Header in der Anforderung angeben, um den gewünschten Antworttyp zu erhalten.
Wenn eine API beispielsweise Daten in XML und JSON zurückgeben kann und Sie das JSON-Ergebnis wünschen, müssen Sie die
HttpWebRequest.Accept
Eigenschaft auf "application / json" setzen .HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(requestUri); httpWebRequest.Method = WebRequestMethods.Http.Get; httpWebRequest.Accept = "application/json";
quelle
requestUri
Ie localhost / api / product / 123WebRequest
stackoverflow.com/questions/3279888/…