API post isteğine 403 forbidden dönüyor

Nereqla

Megapat
Katılım
21 Ağustos 2017
Mesajlar
319
Çözümler
6
HttpClient üzerinden post isteği gönderdiğimde geriye 403 forbidden alıyorum. Diyebilirsiniz sorguda vs bir hata vardır veya api problemdir ancak bunda sorun yok çünkü aynı sorguyu Insomnia (postman benzeri bir sorgulama uygulaması) uygulaması üzerinden yaptığımda 200 kodu ile istediğim geri dönüşü API'dan alabiliyorum.

ss.png


Koddaki karşılığını ise şöyle yazdım;

C#:
public class PostCookieContent
{
    public string client_id { get; set; }
    public string nonce { get; set; }
    public string redirect_uri { get; set; }
    public string response_type { get; set; }
}

C#:
PostCookieContent body = new PostCookieContent()
{
    client_id = "play-valorant-web-prod",
    nonce = "1",
    redirect_uri = "https://playvalorant.com/opt_in",
    response_type = "token id_token"
};

string json = JsonConvert.SerializeObject(body);

var httpContent = new StringContent(json.ToString(), Encoding.UTF8, "application/json");

string api_url = "https://auth.riotgames.com/api/v1/authorization";

var response = client.PostAsync(api_url, httpContent).Result;


Sonuç
ss2.png



Nerede hata yapıyorum bir türlü çözemedim.


Güncelleme:
Sorunu çözmüş bulunmaktayım. Nasıl çözdüğümü soracak olursanız da birden bire ben bu istekleri bir yerde yakalayabilir miyim acaba karşı tarafa ne gidiyor da problem çıkarıyor diye düşünürken şu siteyi keşfettim Webhook.site - Test, process and transform emails and HTTP requests

Bu sitenin size özel oluşturduğu URL adresine sorgularınızı gönderiyorsunuz ve kendisine gelen istekleri yakalayıp size sunuyor böylece karşı tarafa ne gönderdiğinizi öğrenmiş oluyorsunuz.
Peki gelelim hataya.

Konuda da yazdığım şekilde
C#:
var httpContent = new StringContent(json.ToString(), Encoding.UTF8, "application/json");
StringContent ile Content Type belirlerken StringContent methodunun 3. parametresine tip göndermeme bunu da almasına rağmen bir şekilde içerik tipini json olarak algılamıyor sorguyu düz metin olarak gönderiyor.

ss3.png

ss4.png


Ben de kodu şu şekilde güncelledim.
C#:
var httpContent = new StringContent(json.ToString());
httpContent.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json");

Gece 3:45 de mutlu son :D
ss5.png

ss6.png
 
HttpClient üzerinden post isteği gönderdiğimde geriye 403 forbidden alıyorum. Diyebilirsiniz sorguda vs bir hata vardır veya api problemdir ancak bunda sorun yok çünkü aynı sorguyu Insomnia (postman benzeri bir sorgulama uygulaması) uygulaması üzerinden yaptığımda 200 kodu ile istediğim geri dönüşü API'dan alabiliyorum.

Eki Görüntüle 1352877

Koddaki karşılığını ise şöyle yazdım;

C#:
public class PostCookieContent
{
    public string client_id { get; set; }
    public string nonce { get; set; }
    public string redirect_uri { get; set; }
    public string response_type { get; set; }
}

C#:
PostCookieContent body = new PostCookieContent()
{
    client_id = "play-valorant-web-prod",
    nonce = "1",
    redirect_uri = "https://playvalorant.com/opt_in",
    response_type = "token id_token"
};

string json = JsonConvert.SerializeObject(body);

var httpContent = new StringContent(json.ToString(), Encoding.UTF8, "application/json");

string api_url = "https://auth.riotgames.com/api/v1/authorization";

var response = client.PostAsync(api_url, httpContent).Result;


Sonuç
Eki Görüntüle 1352879


Nerede hata yapıyorum bir türlü çözemedim.


Güncelleme:
Sorunu çözmüş bulunmaktayım. Nasıl çözdüğümü soracak olursanız da birden bire ben bu istekleri bir yerde yakalayabilir miyim acaba karşı tarafa ne gidiyor da problem çıkarıyor diye düşünürken şu siteyi keşfettim Webhook.site - Test, process and transform emails and HTTP requests

Bu sitenin size özel oluşturduğu URL adresine sorgularınızı gönderiyorsunuz ve kendisine gelen istekleri yakalayıp size sunuyor böylece karşı tarafa ne gönderdiğinizi öğrenmiş oluyorsunuz.
Peki gelelim hataya.

Konuda da yazdığım şekilde
C#:
var httpContent = new StringContent(json.ToString(), Encoding.UTF8, "application/json");
StringContent ile Content Type belirlerken StringContent methodunun 3. parametresine tip göndermeme bunu da almasına rağmen bir şekilde içerik tipini json olarak algılamıyor sorguyu düz metin olarak gönderiyor.

Eki Görüntüle 1352932
Eki Görüntüle 1352933

Ben de kodu şu şekilde güncelledim.
C#:
var httpContent = new StringContent(json.ToString());
httpContent.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json");

Gece 3:45 de mutlu son :D
Eki Görüntüle 1352934
Eki Görüntüle 1352935
Merhaba, acaba kodları paylaşma şansınız var mı?
 
Konu nedir? Sorunu çözdüm ben, zaten çözümü konuda da belirttim ki üstünden çok geçti kodları ne yapacaksınız?
Benimkilerle karşılaştırıcaktım, Bi türlü yapamadım

Access token falan alıyorum, fakat /store/v2/storefront/{puuid} endpoint'e istek atıyorum. 403 dönüyor
 

Technopat Haberler

Yeni konular

Geri
Yukarı