How to use WebAp2 without authentication in C #

Dearl All I am new to WebAPI2. I want to consume data from a function in JSON format, but throw a StatusCode: 403, ReasonPhrase: "ModSecurity action" error . I can use directly from the browser, but I cannot from HttpClient. Security is not implemented.

Works fine on the local server, but above errors on the remote shared server. APIURL http://api.owncircles.com/api/Circles/Education/Questions/getAns/2012460157

API Functional Code

[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);
}

Client side

[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);
}
0
source share
1 answer

, , , . - , . :

, await/async,

using (HttpClient client = new HttpClient())
{
    client.BaseAddress = new Uri("http://api.owncircles.com/");
    client.DefaultRequestHeaders.Clear();
    client.DefaultRequestHeaders.Accept.ParseAdd("application/json");
    client.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36");

    var result = client.GetAsync("api/Circles/Education/Questions/getAns/2012460157").Result;

    if(result.IsSuccessStatusCode)
        Console.Write(result.Content.ReadAsStringAsync().Result);
    else
        Console.Write("fail");
}

, , API , .

+1

All Articles