2016-03-25 21 views
1

Sağ taraf web sitemdeki mülklerimi listelemek için mülk sitemde gerçek zamanlı veri feed'i (rtdf) entegre ediyorum. rightmove listeleme veri göndermek için asp.net web API kullanıyorum. bana bu SSL Dosyalarını sağladıkları [.p12, .pem, .jks]. Yerel makine kişisel mağazamda .p12 sertifikamı aldım ve http: adresinde, sağ hareketle sağa doğru test api bağlantısını sağladım. Sunucudan aşağıdaki hatayı alıyorum. Uzak sunucu bir hata verdi: 403 yasak.Rightmove Gerçek Zamanlı Veri Feed'inin (RTDF) entegrasyonu asp.net

i aşağıda benim kod bana 403 yasak hatadan kurtulmak için

public static string PostData(string data, string url) 
{ 
    String result = ""; 

    try 
    { 
     byte[] bytebuffer = Encoding.UTF8.GetBytes(data); 
     HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url); 
     objRequest.Method = "POST"; 
     objRequest.ContentLength = bytebuffer.Length; 
     objRequest.ContentType = "application/json"; 
     objRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"; 
     objRequest.PreAuthenticate = true; 
     objRequest.Accept = "application/json"; 
     objRequest.ClientCertificates.Add(CertificateHelper.GetRightmoveApiX509Certificate()); 

     using (Stream stream = objRequest.GetRequestStream()) 
     { 
      stream.Write(bytebuffer, 0, bytebuffer.Length); 
      stream.Close(); 
     } 

     HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse(); 
     using (StreamReader streamReader = new StreamReader(objResponse.GetResponseStream())) 
     { 
      result = streamReader.ReadToEnd(); 
      // Close and clean up the StreamReader 
      streamReader.Close(); 
     } 
    } 
    catch (Exception e) 
    { 
     result = "Exception: " + e.Message; 
    } 
    return result; 
} 

yardımdır, benim sertifika isteğinde başarıyla yüklendi kontrol etti. Aşağıdakileri kullanın:

+0

bu, istek gönderdiğim URL'dir https://adfapi.adftest.rightmove.com/v1/property/sendpropertydetails –

cevap

0

Test ettim ve davamda iyi çalışıyor.

// Grab Certificate 
X509Certificate2 cert2 = new X509Certificate2(
    AppDomain.CurrentDomain.BaseDirectory + "CertificateName.p12", 
    CertificatePasswordHere, 
    X509KeyStorageFlags.MachineKeySet); 


var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://adfapi.adftest.rightmove.com/v1/property/sendpropertydetails"); 
httpWebRequest.ContentType = "application/json"; 
httpWebRequest.Method = "POST"; 
httpWebRequest.ClientCertificates.Clear(); 
httpWebRequest.ClientCertificates.Add(cert2); 
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) 
{ 
    streamWriter.Write(data); 
    streamWriter.Flush(); 
    streamWriter.Close(); 
} 

var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 
using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) 
{ 
    var result = streamReader.ReadToEnd(); 
} 
İlgili konular