【发布时间】:2014-11-27 22:11:58
【问题描述】:
您好,我正在尝试使用 .Net 通过 HTTPS 将以下 xml 发布到 PayPal 报告引擎。我正在尝试使用 .net 以编程方式生成贝宝报告。我检查了 PayPal 报告 API 的文档并在 xml 文件下面创建。我想将此 XML 发布到贝宝以生成报告。请求的内容/类型应该是文本/纯文本。但是我收到异常抛出的消息,我试图捕捉异常但无法做到这一点。如果我更改程序,我不会收到任何响应,并且根据 PayPal 文档响应将是包含状态代码的 xml 文件。
DailyActivity.xml
<?xml version="1.0" encoding="UTF-8"?>
<reportingEngineRequest>
<authRequest>
<vendor>**</vendor>
<partner>**</partner>
<password>**</password>
</authRequest>
<runReportRequest>
<reportName>DailyActivityReport</reportName>
<reportParam>
<paramName>report_date</paramName>
<paramValue>2007-10-10</paramValue>
</reportParam>
<pageSize>50</pageSize>
</runReportRequest>
</reportingEngineRequest>
我的 C# 代码如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Http;
using System.Net.HttpWebRequest;
namespace RunPaypalReport
{
class Program
{
static void Main(string[] args)
{
string URL = "https://payments-reports.paypal.com/test-reportingengine";
string filename = "report.xml";
try
{
WebRequest request = WebRequest.Create(URL);
//Set values for the request back
request.Method = "POST";
request.ContentType = "text/plain";
string postdata = GetTextFromXMLFile(filename);
Console.Write(postdata);
// byte[] byteArray = Encoding.Default.GetBytes(postdata);
byte[] bytes = System.Text.Encoding.ASCII.GetBytes(postdata);
request.ContentLength = bytes.Length;
using (Stream os = request.GetRequestStream())
{
os.Write(bytes, 0, bytes.Length);
}
using (System.Net.WebResponse response = request.GetResponse())
{
if (response == null)
return;
using (System.IO.StreamReader sr = new System.IO.StreamReader(response.GetResponseStream()))
{
string post = sr.ReadToEnd().Trim();
Console.Write(post);
sr.Close();
return;
}
}
}
catch (Exception e)
{
Console.Write(e.Message);
}
}
private static string GetTextFromXMLFile(string file)
{
StreamReader reader = new StreamReader(file);
string ret = reader.ReadToEnd();
reader.Close();
// Console.Write(ret);
return ret;
} }
}
【问题讨论】:
标签: .net xml paypal xmlhttprequest