1. protected void Button1_Click(object sender, EventArgs e)
  2. {
  3. MemoryStream stream = new MemoryStream();
  4. StreamReader reader = new StreamReader(stream);
  5.  
  6. GetReportRequest request = new GetReportRequest();
  7. request.ReportId = "24537536063";
  8. request.Merchant = sellerId;
  9. request.MWSAuthToken = mwsAuthToken;
  10. request.Report = stream;
  11. ltMsg.Text = InvokeGetReport(request);
  12.  
  13. string text = reader.ReadToEnd();
  14. stream.Dispose();
  15. stream.Close();
  16. reader.Dispose();
  17. reader.Close();
  18.  
  19. DataTable dt = ConvertReport2DT(text);
  20. GridView1.DataSource = dt;
  21. GridView1.DataBind();
  22.  
  23. //Response.Write(text);
  24. }
  25.  
  26. public static string InvokeGetReport(GetReportRequest request)
  27. {
  28. StringBuilder builder = new StringBuilder();
  29. try
  30. {
  31. MarketplaceWebService.MarketplaceWebServiceConfig config = new MarketplaceWebServiceConfig();
  32. config.ServiceURL = serviceURL;
  33. MarketplaceWebService.MarketplaceWebService service = new MarketplaceWebServiceClient
  34. (accessKey, secretKey, appName, appVersion, config);
  35.  
  36. GetReportResponse response = service.GetReport(request);
  37.  
  38. builder.AppendFormat("Service Response");
  39. builder.AppendFormat("=============================================================================");
  40.  
  41. builder.AppendFormat(" GetReportResponse");
  42. if (response.IsSetGetReportResult())
  43. {
  44. builder.AppendFormat(" GetReportResult");
  45. GetReportResult getReportResult = response.GetReportResult;
  46. if (getReportResult.IsSetContentMD5())
  47. {
  48. builder.AppendFormat(" ContentMD5");
  49. builder.AppendFormat(" {0}", getReportResult.ContentMD5);
  50. }
  51. }
  52. if (response.IsSetResponseMetadata())
  53. {
  54. builder.AppendFormat(" ResponseMetadata");
  55. ResponseMetadata responseMetadata = response.ResponseMetadata;
  56. if (responseMetadata.IsSetRequestId())
  57. {
  58. builder.AppendFormat(" RequestId");
  59. builder.AppendFormat(" {0}", responseMetadata.RequestId);
  60. }
  61. }
  62.  
  63. builder.AppendFormat(" ResponseHeaderMetadata");
  64. builder.AppendFormat(" RequestId");
  65. builder.AppendFormat(" " + response.ResponseHeaderMetadata.RequestId);
  66. builder.AppendFormat(" ResponseContext");
  67. builder.AppendFormat(" " + response.ResponseHeaderMetadata.ResponseContext);
  68. builder.AppendFormat(" Timestamp");
  69. builder.AppendFormat(" " + response.ResponseHeaderMetadata.Timestamp);
  70.  
  71. }
  72. catch (MarketplaceWebServiceException ex)
  73. {
  74. builder.AppendFormat("Caught Exception: " + ex.Message);
  75. builder.AppendFormat("Response Status Code: " + ex.StatusCode);
  76. builder.AppendFormat("Error Code: " + ex.ErrorCode);
  77. builder.AppendFormat("Error Type: " + ex.ErrorType);
  78. builder.AppendFormat("Request ID: " + ex.RequestId);
  79. builder.AppendFormat("XML: " + ex.XML);
  80. builder.AppendFormat("ResponseHeaderMetadata: " + ex.ResponseHeaderMetadata);
  81. }
  82. return builder.ToString();
  83. }
  84.  
  85. #region 报告字符串转换成DataTable
  86. /// <summary>
  87. /// 报告字符串转换成DataTable
  88. /// </summary>
  89. /// <param name="reportMsg">报告字符串</param>
  90. /// <returns></returns>
  91. public static DataTable ConvertReport2DT(string reportMsg)
  92. {
  93. DataTable dt = new DataTable();
  94. try
  95. {
  96. //\t \r\n
  97. if (reportMsg.Contains("\r\n"))
  98. {
  99. string[] rows = reportMsg.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
  100. //第一行表头
  101. if (rows[0].Contains("\t")) //制表符
  102. {
  103. string[] columns = rows[0].Split('\t');
  104. for (int i = 0; i < columns.Length; i++)
  105. {
  106. if (!dt.Columns.Contains(columns[i]))
  107. {
  108. dt.Columns.Add(columns[i]);
  109. }
  110. }
  111. }
  112. //第二行开始数据
  113. for (int i = 1; i < rows.Length; i++)
  114. {
  115. string[] datas = rows[i].Split('\t');
  116. DataRow dr = dt.NewRow();
  117. for (int j = 0; j < datas.Length; j++)
  118. {
  119. dr[j] = datas[j];
  120. }
  121. dt.Rows.Add(dr);
  122. dr = null;
  123. }
  124. }
  125. }
  126. catch { }
  127. return dt;
  128. }
  129. #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. 第2阶段——编写uboot之硬件初始化和制作链接脚本lds(1)

    目标: 1.关看门狗 2.设置时钟 3.初始化SDRAM (初始化寄存器以及清除bss段) 4.重定位 (将nand/nor中代码COPY到链接地址上,需要初始化nandflash,读flash) 5 ...

  2. 原生的AJAX

    var XHR=null; if (window.XMLHttpRequest) { // 非IE内核 XHR = new XMLHttpRequest(); } else if (window.Ac ...

  3. 介绍call和apply

    function add(a, b) { alert(a + b); } function sub(a, b) { alert(a - b); } add.call(sub, 1,3); //4  传 ...

  4. JAVA基础第四组(5道题)

    16.[程序16]                   题目:输出9*9口诀.                  1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列. package com. ...

  5. 团队作业4——第一次项目冲刺(Alpha版本)4.24

    ·本次会议为第三次Scrum Meeting会议~ ·本次会议项目经理召开时间为15:00,在教学楼教室召开,召开时长约30分钟,探讨了昨日任务的进展.遇到的困难以及后续所要开展的工作. 1.站立式会 ...

  6. 201521123024《Java程序设计》第8周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 本次作业题集集合 1.List中指定元素的删除(题目4-1) 1.1 实验总结 注意conve ...

  7. 201521123005《java程序设计》第四周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. ·继承(是什么,意义) -父类(被继承的类) -子类(继承父类) -多态(解决重复代码的问题 ...

  8. evak购物车--团队博客

    1. 团队名称.团队成员介绍(需要有照片) 团队名称:evak 团队成员介绍:陈凯欣,计算机工程学院网络工程1512,学号为201521123034:邱晓娴,计算机工程学院网络工程1512,学号为20 ...

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

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 Q1. 网络基础 参考:实验任务书-题目1 1.1 比较ping www.baidu.co ...

  10. 201521123116 《java程序设计》第十三周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 Q1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jm ...