Dearlすべて WebAPI2の新機能です。 JSON形式の関数からデータを消費しますが、エラーStatusCode:403、ReasonPhrase: 'ModSecurity Action'をスローします。 私はブラウザから直接使用できますが、HttpClientからは使用できません。セキュリティは実装されていません。C#で認証なしでWebAp2を使用する方法
ローカルサーバーでは問題はありませんが、リモート共有サーバーではエラーがスローされます。 APIURL。 http://api.owncircles.com/api/Circles/Education/Questions/getAns/2012460157
API機能コード。
[HttpGet()]
[AllowAnonymous]
[Route("~/api/Circles/Education/Questions/getAns/{quesID}")]
public IHttpActionResult getAns(string quesID)
{
IQuestions objQuestion = Questions.getInatance();
var qtn = objQuestion.getAns(quesID);
return Json(qtn);
}
クライアント側
[AllowAnonymous]
public async Task<ActionResult> checkAns(string id)
{
string url = common.apiURL + "Circles/Education/Questions/getAns/"+id;
//HttpClient client = new HttpClient(new HttpClientHandler() {UseDefaultCredentials = true });
HttpClient client = new HttpClient();
// client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(Constants.));
// client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("");
// client.DefaultRequestHeaders.Authorization = null;
client.BaseAddress = new Uri(url);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
ent_QuestionsDetails Questions = null;
var response = await client.GetAsync(url);
if (response.IsSuccessStatusCode)
{
Questions = response.Content.ReadAsAsync<ent_QuestionsDetails>().Result;
}
OC.Models.mod_Questions objModel = new OC.Models.mod_Questions();
objModel.questionID = Questions.questionID;
objModel.questions = Questions.questions;
objModel.questionOptions = Questions.questionOptions;
return View(objModel);
}
以下の回答があなたの質問に答えている場合は、チェックボックスを使用してそのようにマークすることを忘れないでください。 – Igor