【问题标题】:Integration of Rightmove Real Time Data Feed (RTDF) asp.netRightmove 实时数据馈送 (RTDF) asp.net 的集成
【发布时间】:2016-03-25 11:02:49
【问题描述】:

我正在我的房产网站中集成 rightmove 实时数据馈送 (rtdf),以便在 rightmove 网站上列出我的房产。我正在使用 asp.net web api 在 rightmove 列表上发布数据。 他们为我提供了这些 SSL 文件 [.p12,.pem,.jks]。我已经在我的本地机器个人商店中导入了 .p12 证书并在我的 http 请求中发送它 rightmove 测试 api 链接由 rightmove 提供。 我从服务器收到以下错误。 远程服务器返回错误:403 禁止。

我在请求中检查了我的证书是否成功加载,下面是我的代码

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

帮我摆脱 403 禁止错误。

【问题讨论】:

标签: c# asp.net ssl


【解决方案1】:

使用以下内容。 我已经对其进行了测试,在我的情况下它运行良好。

// 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();
}

【讨论】:

    猜你喜欢
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 2012-07-05
    • 1970-01-01
    • 2012-08-01
    • 1970-01-01
    相关资源
    最近更新 更多