[ASP.Net] 用Fiddler測試WebAPI語系報錯
為了測試WebAPI
剛好有找到其他大大推薦的工具---Fiddler
於是開始使用這套工具
但這次使用時我的API卻出現了下面這個錯誤
ExceptionMessage":"並未將物件參考設定為物件的執行個體。"
逐行執行後發現錯誤點是在下面這段
/// <summary>
/// 依語系產生i18n
/// </summary>
/// <param name="name">Resource的Name</param>
/// <returns></returns>
public static string Toi18n(this string name)
{
try
{
string lang = HttpContext.Current.Request.UserLanguages[0]; // 錯誤點
System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo(lang);
var value = FubonResource.FubonResource.ResourceManager.GetString(name,ci);
if (!string.IsNullOrEmpty(value))
return value;
else
return name;
} catch (Exception ex)
{
throw ex;
}
}
UserLanguages??? 字面上翻譯是使用者語言
抱著實驗的精神用瀏覽器打開結果可以正常執行
只有Fiddler會報錯
檢查一下兩方的標頭發現瀏覽器有加入下面這行
Accept-Language:zh-TW,zh;q=0.8,en-US;q=0.6,en;q=0.4,zh-CN;q=0.2
抱著實驗的精神把它放入Fiddler的標頭
結果就正常執行了!!!
原來.net MVC的語系選擇是利用標頭檔來執行的
Write By Charley Chang
新手發文,若有錯誤還請指教,
歡迎留言或Mail✉給我
本著作係採用創用 CC 姓名標示-非商業性-相同方式分享 4.0 國際 授權條款授權.