近日研究用wcf框架接收同事Android端以post形式传输的各种类型的参数,来做处理。但研究过程中问题比较多,首先键值对的形式是实现了,传输int,string类型都不成问题,但是到传输文件的时候,以流stream的形式进行传输,遇到问题,经过研究,本人对wcf的知道理解有限,短时间内达不到运用自如的状态。后改为用mvc框架进行接收,在同事的协作与帮助下,经一番试验,各种参数得以成功传输。

现将代码整理如下(以下代码经过测试,可成功运行):

 using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Script.Serialization;
using System.Text;
using System.Collections; namespace PoliceAPP.Controllers
{
public class TestController : BaseController
{
//
// GET: /Test/ public string Index()
{
// (1) 解析参数
string json = "";
var hh = "";
// 接收对方文件类型的参数 "file"为参数名,必须和对方的参数名一致
var myfile = Request.Files["file"];
if (myfile != null)
{//文件保存路径
var filePath = Path.Combine(Request.MapPath("~/Upload"), Path.GetFileName(myfile.FileName));
if (Directory.Exists(filePath))
{ }
else
{
myfile.SaveAs(filePath);
}
}
//接收图片
var myfile1 = Request.Files["img"];
if (myfile1 != null)
{
myfile1.SaveAs(Path.Combine(Request.MapPath("~/Upload"), Path.GetFileName(myfile1.FileName)));
}
//接收多个文件(对方以数组形式传输)
var filelist = Request.Files.GetMultiple("filelist");
foreach (HttpPostedFileBase file in filelist)
{
//HttpPostedFileBase uploadFile = Request.Files[file] as HttpPostedFileBase;
if (file!= null && file.ContentLength > )
{
var filepath1 = Path.Combine(Request.MapPath("~/Upload"), Path.GetFileName(file.FileName));
file.SaveAs(filepath1);
}
} JavaScriptSerializer js = null;
Person p = new Person();
try
{ //接收值
json = Request["Age"];/// "data={Age:18,Name:"zhangxu"}"
hh = Request["Name"];
//ss = Request["File"];
System.Diagnostics.Debug.Assert(false, hh);
System.Diagnostics.Debug.Assert(false, json); js = new JavaScriptSerializer(); //实例化一个能够序列化数据的类
//Person list = js.Deserialize<Person>(json); //将json数据转化为对象类型并赋值给list
p = new Person();
p.Name = hh;//list.Name;
p.Age = string.IsNullOrEmpty(hh) ? : Convert.ToInt32(json);// list.Age;
}
catch (Exception)
{ System.Diagnostics.Debug.Assert(false, "yichang");
System.Diagnostics.Debug.Assert(false, Request.Params.ToString()); }
System.Diagnostics.Debug.Assert(false, Request.Params.ToString());
// 数据库逻辑 //
//Person p = new Person();
//p.Age = 9;
//p.Name = "zhangxu";
js.Serialize(p);
return js.Serialize(p); } public string ZX()
{
// (1) 解析参数
var json = Request["data"];/// "data={Age:18,Name:"zhangxu"}" JavaScriptSerializer js = new JavaScriptSerializer(); //实例化一个能够序列化数据的类
//Person list = js.Deserialize<Person>(json); //将json数据转化为对象类型并赋值给list
//string result = list.Name;
//var res_info = list.Age;
// 数据库逻辑 //
Person p = new Person();
p.Age = ;
p.Name = "ZX";
js.Serialize(p);
return js.Serialize(p); } }
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
}

MVC接收以post形式传输的各种参数的更多相关文章

  1. 使用Spring mvc接收整个url地址及参数时注意事项

    使用Spring mvc接收整个url地址及参数时注意事项:url= http://baidu?oid=9525c1f2b2cd45019b30a37bead6ebbb&td=2015-08- ...

  2. spring mvc接收ajax提交的JSON数据,并反序列化为对象

    需求:spring mvc接收ajax提交的JSON数据,并反序列化为对象,代码如下: 前台JS代码: //属性要与带转化的对象属性对应 var param={name:'语文',price:16}; ...

  3. ajax post提交空字符串(string.Empty) MVC接收为null的问题

    ajax post提交空字符串(string.Empty) MVC接收为null的问题 这个问题查了好多资料才知道原因: if (bindingContext.ModelMetadata.Conver ...

  4. spring mvc接收数组

    (一)前言 对于springmvc接收数组的问题啊,我试验过几次,但是了有时候成功了,有时候失败了,也不知道为啥的,然后现在又要用到了,所以打算具体看看到底怎么回事,但是了我实验成功了顺便找了好多资料 ...

  5. 【spring mvc】后台spring mvc接收List参数报错如下:org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.util.List]: Specified class is an interface

    后台spring mvc接收List参数报错如下:org.springframework.beans.BeanInstantiationException: Failed to instantiate ...

  6. 关于“在从服务器接收结果时发生传输级错误。 (provider: TCP Provider, error: 0 - 指定的网络名不再可用。)”的解决方法之一

    最近几天发现连sql数据库服务器的时候,总是提示“在从服务器接收结果时发生传输级错误. (provider: TCP Provider, error: 0 - 指定的网络名不再可用.)”的错误. 网上 ...

  7. Error-ASP.NET:在从服务器接收结果时发生传输级错误。 (provider: Session Provider, error: 19 - 物理连接不可用)

    ylbtech-Error-ASP.NET:在从服务器接收结果时发生传输级错误. (provider: Session Provider, error: 19 - 物理连接不可用)  1.返回顶部 1 ...

  8. Spring MVC接收参数(Map,List,JSON,Date,2个Bean)(记录一次面试惨状)

    题目Spring MVC 接收参数 MapListDate2个BeanJSON Spring MVC接收参数 -Map Spring MVC接收参数 -List Spring MVC接收参数 -dat ...

  9. SPRING IN ACTION 第4版笔记-第五章BUILDING SPRING WEB APPLICATIONS-004-以query parameters的形式给action传参数(@RequestParam、defaultValue)

    一. 1.Spring MVC provides several ways that a client can pass data into a controller’s handler method ...

随机推荐

  1. Python自动化运维之12、面向对象进阶

    上一篇<面向对象基础>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公 ...

  2. hdu 5100 Chessboard

    http://acm.hdu.edu.cn/showproblem.php?pid=5100 在比赛时没看懂题就没看,结束之后,看了解题报告才知道怎么做. 解题报告: 首先,若n<k,则棋盘连一 ...

  3. Delphi COM编程学习笔记(1)

    释放接口对象,既不是调用MyObj.Free,也不是MyObj.Release;破坏对象的正确方法是将它们设置为nil:MyInterface := nil; 一个接口不能离开实现它的对象而独立存活. ...

  4. Python 命令行非阻塞输入

    很久很久以前,系windows平台下,用C语言写过一款贪食蛇游戏,cmd界面,用kbhit()函数实现非阻塞输入.系windows平台下用python依然可以调用msvcrt.khbit实现非阻塞监听 ...

  5. POJ1008 1013 1207 2105 2499(全部水题)

    做了一天水题,挑几个还算凑合的发上来. POJ1008 Maya Calendar 分析: #include <iostream> #include <cstdio> #inc ...

  6. POJ 1122 FDNY to the Rescue! Floyd 打印路径就行了

    题目大意: 纽约消防部门的支援速度是值得纽约人骄傲的一件事.但是他们想要最快的支援速度,帮助他们提升支援速度他们要调度离着火点最近的一个消防站.他们要你写一个程序来维护纽约消防站的光荣传统.软件需要有 ...

  7. HelloSilverlight

    一:输入姓名并选中一个日期,将在下面显示 二:XAML代码 <UserControl x:Class="HelloSilverlight.MainPage" xmlns=&q ...

  8. 错误 1 未能找到元数据文件“C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/wwwroot/7cb4fcd

    错误 1 未能找到元数据文件“C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/wwwroot/7cb4fcd ...

  9. Linux 下 的 cc 和 gcc

    在Linux下一会看到cc,另一会又看到gcc,感觉又点混乱的样子.它们是同一个东西么,有啥区别呢? 一分为二地看: 首先,如果讨论范围在Unix和Linux之间,那么cc和gcc不是同一个东西.cc ...

  10. mongodb清洗数据

    1,数据库连接超时:DBPool的连接时的配置: 自己进行设置:   MongoClientOptions mco = new MongoClientOptions.Builder()         ...