[英]HttpWebRequest returns (400) Bad Request
該請求給出以下錯誤:遠程服務器返回錯誤:(400)錯誤請求。
我無法在互聯網上找到解決方案。 有誰知道如何解決這個問題?
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@"https://maps.googleapis.com/maps/api/geocode/json");
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";
var parameters = string.Format("language={0}&latlng={1}&client={2}&signature={3}", "nl", "51.123456,5.612345", "gme-aa", "******_******=");
byte[] byteArray = Encoding.UTF8.GetBytes(parameters);
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
/*
* Read HttpWeb Response
*/
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string Response = reader.ReadToEnd();
response.Close();
編輯:
我在Lowcode平台Outsystems內部工作。 Outsystems在沒有參數的情況下在WebRequest.Create()中創建URL。 所以,我有權訪問webRequest對象並需要傳遞參數。
您必須使用HTTP “GET”方法。
在GET請求中,您將參數作為查詢字符串的一部分傳遞。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create($"https://maps.googleapis.com/maps/api/geocode/json?language=fr&latlng=51.123456,5.612345&key={apiKey}");
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "GET";
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
string result = new StreamReader(response.GetResponseStream()).ReadToEnd();
}
根據文檔 ,API期望POST方法並接收URL中的參數而不是正文。
如果您使用的是OutSystems平台,則可以使用Consume REST API功能輕松調用Web服務,而無需使用代碼。 像這樣配置你的API(你可以從上面的文檔頁面復制示例JSON):
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.