获取报告 Stream转string,利用字符串分割转换成DataTable
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的更多相关文章
- Android项目开发全程(四)-- 将网络返回的json字符串轻松转换成listview列表
前面几篇博文介绍了从项目搭建到获取网络字符串,对一个项目的前期整体工作进行了详细的介绍,本篇接着上篇介绍一下怎么样优雅将网络返回的json字符串轻松转换成listview列表. 先上图,看一下效果. ...
- JAVA将数字字符串强制转换成整型变量----求参数之和实验代码(附流程图)
一.设计思想 先将参数个数输出,并利用循环结果将参数逐个输出,再将字符串强制转化成整型,利用循环结构相加求和 二.程序流程图 三.源程序代码 package demo; public class Co ...
- 字符串集合或字符串数组转换成json数组
字符串可以是List<String>类型的字符串集合,也可以是String[]类型的字符串数组,二者转换成JSON数组的方式没有什么不同.下面代码注意关键的部分即可(画红线部分). 1. ...
- Java中如何将字符串数组转换成字符串
如果将“字符串数组”转换成“字符串”,只能通过循环,没有其他方法: public static String getExecSqlString(String str){ StringBuffer sb ...
- 获取listboxitem在ListBox中的index并转换成abcd
原文 获取listboxitem在ListBox中的index并转换成abcd 截图如下: 1.实现Converter 获取到listbox,并得到listitem在listbox中的index p ...
- //C语言:将一个由字符0和1组成的表示二进制数的字符串,转换成相应的十进制数返回。
//函数fun:将一个由字符0和1组成的表示二进制数的字符串,转换成相应的十进制数返回. #include <stdio.h> #pragma warning (disable:4996) ...
- javascript常见面试题之一:将字符串'get-element-by-id'转换成驼峰命名法;
var str='get-element-by-id'; function strToupper(str) { //利用split将字符串分割成数组var arr= str.split('-'); f ...
- @RequestBody配合@JsonFormat注解实现字符串自动转换成Date
2018年08月28日 16:41:15 混合动力火锅 阅读数:440 在controller中使用@RequestBody可以自动将字符串转换成int或者将int转换成字符串,但是Date类型则 ...
- 字符串数字转换成对应的Double数值
一,介绍 前面实现了字符串转换成整形数值.参考这里: 它不支持小数,不支持符号(正.负号) 现在实现一个更复杂一点字符串转换成数值的程序. 它支持“浮点字符串”转换成对应的浮点数值,如: " ...
随机推荐
- 【ACM小白成长撸】--计算单词个数
我判断单词个数的方法,根据空格‘ ’的个数 分情况 当没有单词的时候 判断第一个符号,即a[0] == ‘\0’时,赋值给存储个数的数组 当遇到空格时,只有前面一个字符不是空格字符,后面一个字符不是空 ...
- macOS上的ODBC-利用unixODBC连接PostgreSQL与SQLite并进行数据迁移
安装UnixODBC & PSQLODBC driver for UnixODBC $ brew install psqlodbc Updating Homebrew... ==> In ...
- Linux下undefined reference to ‘pthread_create’问题解决
Linux下undefined reference to 'pthread_create'问题解决 在试用Linux 线程模块时,试用pthread_create 函数. 编译命令为 gcc main ...
- 8个超震撼的HTML5和纯CSS3动画源码
HTML5和CSS3之所以强大,不仅因为现在大量的浏览器的支持,更是因为它们已经越来越能满足现代开发的需要.Flash在几年之后肯定会消亡,那么HTML5和CSS3将会替代Flash.今天我们要给大家 ...
- 201521123084 《Java程序设计》第9周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1. 常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自 ...
- CCNP-3.vlan间路由及三层交换机的配置
- [2017BUAA软工助教]第0次个人作业
学习别人的经验和体会 零.前言 我认为人生就是一次次地从<存在>到<光明>. 一.软件工程师的成长 0.这是一个博客索引 同学们在上这门课的时候基本都是大三,觉得在大学里,到教 ...
- bean的单例
通过改变中的scope属性,默认是singleton单例.而prototype则指定每getbean得到的都是不同实例. 验证代码: ①:验证默认singleton //验证<bean id=& ...
- 201521123081《Java程序设计》 第3周学习总结
1. 本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识组织起来.请使用纸笔或者下面的工具画出本周学习到的知识点.截图或者拍照上传. 参考资料:百 ...
- 201521123092,《java程序设计》第1周学习总结
1.本周学习总结 这一周是我学习java的第一周,刚接触一门全新的编程语言,觉得还是有点困难的,很多基础性的java知识需要一点点学习,我会请教同学以及查询网上的学习资料,认真学好这一门学科. 本周学 ...