gpt4 book ai didi

c# - PayPal API Http 调用的问题

转载 作者:太空狗 更新时间:2023-10-30 00:30:34 25 4
gpt4 key购买 nike

我已经集成了一个选项,让用户可以通过 PayPal 为他们在我创建的网上商店的在线购物付款。当我开始收到此错误时,问题突然出现了:

You must write ContentLength bytes to the request stream before calling [Begin]GetResponse. 

Http调用的代码如下:

   public string HttpCall(string NvpRequest)
{
string url = pEndPointURL;

string strPost = NvpRequest + "&" + buildCredentialsNVPString();
strPost = strPost + "&BUTTONSOURCE=" + HttpUtility.UrlEncode(BNCode);

HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url);
objRequest.Timeout = Timeout;
objRequest.Method = "POST";
objRequest.ContentLength = strPost.Length;

try
{
using (StreamWriter myWriter = new StreamWriter(objRequest.GetRequestStream()))
{
myWriter.Write(strPost.ToString());
}
}
catch (Exception e)
{

}

//Retrieve the Response returned from the NVP API call to PayPal.
HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse(); // this is the line where the exception occurs...
string result;
using (StreamReader sr = new StreamReader(objResponse.GetResponseStream()))
{
result = sr.ReadToEnd();
}

return result;
}

有人可以帮我解决这个问题吗?一天前它工作正常,现在它给我这个错误?

最佳答案

好的,如果有人感兴趣,我可以通过在创建 Web 请求之前添加以下行来修复错误(我可以通过像这样进入 Tls12 来修复它):

`ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12`;

干杯:-)

编辑试试这个:

 public string HttpCall(string NvpRequest)
{
string url = pEndPointURL;

string strPost = NvpRequest + "&" + buildCredentialsNVPString();
strPost = strPost + "&BUTTONSOURCE=" + HttpUtility.UrlEncode(BNCode);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
// Try using Tls11 if it doesnt works for you with Tls
HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url);
objRequest.Timeout = Timeout;
objRequest.Method = WebRequestMethods.Http.Post;
objRequest.ContentLength = strPost.Length;
try
{

using (StreamWriter myWriter = new StreamWriter(objRequest.GetRequestStream()))
{
myWriter.Write(strPost.ToString());
}
}
catch (Exception e)
{

}

//Retrieve the Response returned from the NVP API call to PayPal.
HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();
string result;
using (StreamReader sr = new StreamReader(objResponse.GetResponseStream()))
{
result = sr.ReadToEnd();
}

return result;
}

关于c# - PayPal API Http 调用的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34968997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com