protected void Button1_Click(object sender, EventArgs e)
{
MemoryStream stream = new MemoryStream();
StreamReader reader = new StreamReader(stream); GetReportRequest request = new GetReportRequest();
request.ReportId = "24537536063";
request.Merchant = sellerId;
request.MWSAuthToken = mwsAuthToken;
request.Report = stream;
ltMsg.Text = InvokeGetReport(request); string text = reader.ReadToEnd();
stream.Dispose();
stream.Close();
reader.Dispose();
reader.Close(); DataTable dt = ConvertReport2DT(text);
GridView1.DataSource = dt;
GridView1.DataBind(); //Response.Write(text);
} public static string InvokeGetReport(GetReportRequest request)
{
StringBuilder builder = new StringBuilder();
try
{
MarketplaceWebService.MarketplaceWebServiceConfig config = new MarketplaceWebServiceConfig();
config.ServiceURL = serviceURL;
MarketplaceWebService.MarketplaceWebService service = new MarketplaceWebServiceClient
(accessKey, secretKey, appName, appVersion, config); GetReportResponse response = service.GetReport(request); builder.AppendFormat("Service Response");
builder.AppendFormat("============================================================================="); builder.AppendFormat(" GetReportResponse");
if (response.IsSetGetReportResult())
{
builder.AppendFormat(" GetReportResult");
GetReportResult getReportResult = response.GetReportResult;
if (getReportResult.IsSetContentMD5())
{
builder.AppendFormat(" ContentMD5");
builder.AppendFormat(" {0}", getReportResult.ContentMD5);
}
}
if (response.IsSetResponseMetadata())
{
builder.AppendFormat(" ResponseMetadata");
ResponseMetadata responseMetadata = response.ResponseMetadata;
if (responseMetadata.IsSetRequestId())
{
builder.AppendFormat(" RequestId");
builder.AppendFormat(" {0}", responseMetadata.RequestId);
}
} builder.AppendFormat(" ResponseHeaderMetadata");
builder.AppendFormat(" RequestId");
builder.AppendFormat(" " + response.ResponseHeaderMetadata.RequestId);
builder.AppendFormat(" ResponseContext");
builder.AppendFormat(" " + response.ResponseHeaderMetadata.ResponseContext);
builder.AppendFormat(" Timestamp");
builder.AppendFormat(" " + response.ResponseHeaderMetadata.Timestamp); }
catch (MarketplaceWebServiceException ex)
{
builder.AppendFormat("Caught Exception: " + ex.Message);
builder.AppendFormat("Response Status Code: " + ex.StatusCode);
builder.AppendFormat("Error Code: " + ex.ErrorCode);
builder.AppendFormat("Error Type: " + ex.ErrorType);
builder.AppendFormat("Request ID: " + ex.RequestId);
builder.AppendFormat("XML: " + ex.XML);
builder.AppendFormat("ResponseHeaderMetadata: " + ex.ResponseHeaderMetadata);
}
return builder.ToString();
} #region 报告字符串转换成DataTable
/// <summary>
/// 报告字符串转换成DataTable
/// </summary>
/// <param name="reportMsg">报告字符串</param>
/// <returns></returns>
public static DataTable ConvertReport2DT(string reportMsg)
{
DataTable dt = new DataTable();
try
{
//\t \r\n
if (reportMsg.Contains("\r\n"))
{
string[] rows = reportMsg.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
//第一行表头
if (rows[0].Contains("\t")) //制表符
{
string[] columns = rows[0].Split('\t');
for (int i = 0; i < columns.Length; i++)
{
if (!dt.Columns.Contains(columns[i]))
{
dt.Columns.Add(columns[i]);
}
}
}
//第二行开始数据
for (int i = 1; i < rows.Length; i++)
{
string[] datas = rows[i].Split('\t');
DataRow dr = dt.NewRow();
for (int j = 0; j < datas.Length; j++)
{
dr[j] = datas[j];
}
dt.Rows.Add(dr);
dr = null;
}
}
}
catch { }
return dt;
}
#endregion

获取报告 Stream转string,利用字符串分割转换成DataTable的更多相关文章

  1. Android项目开发全程(四)-- 将网络返回的json字符串轻松转换成listview列表

    前面几篇博文介绍了从项目搭建到获取网络字符串,对一个项目的前期整体工作进行了详细的介绍,本篇接着上篇介绍一下怎么样优雅将网络返回的json字符串轻松转换成listview列表. 先上图,看一下效果. ...

  2. JAVA将数字字符串强制转换成整型变量----求参数之和实验代码(附流程图)

    一.设计思想 先将参数个数输出,并利用循环结果将参数逐个输出,再将字符串强制转化成整型,利用循环结构相加求和 二.程序流程图 三.源程序代码 package demo; public class Co ...

  3. 字符串集合或字符串数组转换成json数组

    字符串可以是List<String>类型的字符串集合,也可以是String[]类型的字符串数组,二者转换成JSON数组的方式没有什么不同.下面代码注意关键的部分即可(画红线部分). 1. ...

  4. Java中如何将字符串数组转换成字符串

    如果将“字符串数组”转换成“字符串”,只能通过循环,没有其他方法: public static String getExecSqlString(String str){ StringBuffer sb ...

  5. 获取listboxitem在ListBox中的index并转换成abcd

    原文 获取listboxitem在ListBox中的index并转换成abcd 截图如下: 1.实现Converter  获取到listbox,并得到listitem在listbox中的index p ...

  6. //C语言:将一个由字符0和1组成的表示二进制数的字符串,转换成相应的十进制数返回。

    //函数fun:将一个由字符0和1组成的表示二进制数的字符串,转换成相应的十进制数返回. #include <stdio.h> #pragma warning (disable:4996) ...

  7. javascript常见面试题之一:将字符串'get-element-by-id'转换成驼峰命名法;

    var str='get-element-by-id'; function strToupper(str) { //利用split将字符串分割成数组var arr= str.split('-'); f ...

  8. @RequestBody配合@JsonFormat注解实现字符串自动转换成Date

    2018年08月28日 16:41:15 混合动力火锅 阅读数:440   在controller中使用@RequestBody可以自动将字符串转换成int或者将int转换成字符串,但是Date类型则 ...

  9. 字符串数字转换成对应的Double数值

    一,介绍 前面实现了字符串转换成整形数值.参考这里: 它不支持小数,不支持符号(正.负号) 现在实现一个更复杂一点字符串转换成数值的程序. 它支持“浮点字符串”转换成对应的浮点数值,如: " ...

随机推荐

  1. mysql添加外键约束变为索引

    今天有位自己填上一坑:mysql储存引擎 原因就是数据库表引擎为:MyISAM,建立主外键关系需要是InnoDB: 解决方案:alter  table table_name1  engine=inno ...

  2. 201521123084 《Java程序设计》第9周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1. 常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自 ...

  3. Java单元测试之覆盖率统计eclemma

    安装 有两种安装方法 下载安装(推荐) 地址: http://sourceforge.net/projects/eclemma/ 将解压后的features和plugins目录下的文件分别拷贝到Ecl ...

  4. 【C++】关于pow函数的用法

    在C++中,pow有多个重载函数: 在dev中,pow(int,int)可以执行,但是在别的地方是不可以被编译的:会提示 :error C2668: “pow”: 对重载函数的调用不明确 可以看见,是 ...

  5. IT之光

    作为一个IT界的新新人才,现在拥有第一个博客,可以在这里学习和分享IT方面的知识和技术.

  6. 201521123028 《java程序设计》 第7周学习总结

    1. 本周学习总结 2. 书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 Ans: ArrayList的contains源代码 contain源代码 ...

  7. 201521123032《Java程序设计》第5周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 参考资料: 百度脑图 XMind 2. 书面作业 作业参考文件下载 1. 代码阅 ...

  8. 学号:201521123116 《java程序设计》第九周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己 ...

  9. 201521123113《Java程序设计》第13周学习总结

    1. 本周学习总结 2. 书面作业 Q1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu.edu.cn,分析返回结果有何不同?为什么会有这样的不同? 返回的结果 ...

  10. Linux SDK之uClinux、Broadcom、Atheros、Realtek、Ralink、Marvell、Intel

    接触的Linux SDK越来越多,整理整理,分享分享,不求系统全面,对您有帮助便足矣 文中大部分是与AP/Router SoC解决方案(单芯片WIFI 路由器解决方案)相关的Linux SDK SDK ...