[英]RESTful Call in C# using basic authentication returning error message
[英]use authentication token in restful C#
我厭倦了其他資源,但找不到我的問題的答案,如果這個問題在其他地方得到了回答,請給我發送答案的鏈接。
我需要使用寧靜的服務,為此必須首先使用身份驗證。 很好,那很好,我管理了身份驗證並獲得了身份驗證令牌。
現在,當我想使用我想要的服務時,遠程服務器返回錯誤:(401)未經授權。
服務中沒有使用令牌的地方。
我創建了一個簡單的C#程序,它包含2個按鈕按鈕1:將對用戶進行身份驗證(工作正常,我將獲得令牌)按鈕2:將使用主服務(不起作用並獲得未授權)
這是我的代碼,請告知我如何使用身份驗證令牌。
private void button1_Click(object sender, EventArgs e)
{
var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://apps.ramm.co.nz:443/RammApi6.1/v1/authenticate/login");
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = "{\"database\":\"RAMM API Demo\"," +
" \"userName\":\"api_demo\"," +
"\"password\":\"thursday\"}";
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
}
}
.............
private void button2_Click(object sender, EventArgs e)
{
var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://apps.ramm.co.nz:443/RammApi6.1/v1/data/table");
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = "{ \"tableName\": \"carr_way\" " +
", \"expandLookups\": \"False\" " +
", \"getGeometry\": \"True\" " +
", \"loadType\": \"Specified\" " +
", \"columns\": [\"carr_way_no\", \"road_id\", \"carrway_start_m\", \"carrway_end_m\", \"start_name\", \"end_name\", \"added_on\", \"chgd_on\"] " +
", \"filters\": [[{\"columnName\": \"added_on\", \"operator\": \"GreaterThan\", \"value\": \"2015-01-01\"}] " +
", [{\"columnName\": \"chgd_on\", \"operator\": \"GreaterThan\", \"value\": \"2015-01-01\"}]]}";
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
}
}
您通常會將授權放在授權標頭中,但是取決於您使用的授權類型,這可能會有所不同。 這可能對您有幫助:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.