接口:写一个网站,对方访问这个网站,并传递过来的一段json

qiuzhihzy123 2017-04-11 02:48:33
接口:写一个网站,对方访问这个网站,并传递过来的一段json,我需要接受这段json,解析成对象(这个方法我有),添加到数据库
...全文
677 23 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灰狼 2017-04-12
  • 打赏
  • 举报
回复
引用 6 楼 qq_25095899 的回复:
ashx ··
+1
  • 打赏
  • 举报
回复
不是很明白
引用 19 楼 sp1234 的回复:
[quote=引用 14 楼 l403256384 的回复:] 接口:写一个网站,对方访问这个网站,并传递过来的一段json,我需要接受这段json,解析成对象(这个方法我有),添加到数据库 这是四个需求 其中只有一个说他已经实现的
发送端需要按照把“长的”参数放到消息体,然后把短的参数拼接到 url 参数中。注意参数在传输时其实都是字符串格式的,不是什么其它格式。 例如对方(假设是桌面软件)可以写
var result = new WebClient().UploadData("http://www.abc.com/site1/handler1.ashx?p1="+ p1Str +"&p2=" + p2Str, Encoding.UTF8.GetBytes(jsonStr));
假设使用 jQuery.post 方式,那么也是一样要将 url 参数跟以text 类型 post 的参数分别表示,才能传送到你的程序中。[/quote] 正解
吃货程序员 2017-04-11
  • 打赏
  • 举报
回复
在访问到这个ashx前面 加入一些日志系统黑名单验证之类的东西。在参数验证上加入一些加密处理的算法 就差不多算一个可以开放的接口了。
  • 打赏
  • 举报
回复
上面引用错了,应该是引用 #15 楼,不是 #14 楼。 上面应该将 req.InputStream 写为 context.Request.InputStream。 你要得到的参数都是字符串文本格式,那么你就需要将 byte 字节流的 obj.InputStream,使用一个 StreamReader 才能将 string 读取出来。
  • 打赏
  • 举报
回复
引用 14 楼 l403256384 的回复:
接口:写一个网站,对方访问这个网站,并传递过来的一段json,我需要接受这段json,解析成对象(这个方法我有),添加到数据库 这是四个需求 其中只有一个说他已经实现的
发送端需要按照把“长的”参数放到消息体,然后把短的参数拼接到 url 参数中。注意参数在传输时其实都是字符串格式的,不是什么其它格式。 例如对方(假设是桌面软件)可以写
var result = new WebClient().UploadData("http://www.abc.com/site1/handler1.ashx?p1="+ p1Str +"&p2=" + p2Str, Encoding.UTF8.GetBytes(jsonStr));
假设使用 jQuery.post 方式,那么也是一样要将 url 参数跟以text 类型 post 的参数分别表示,才能传送到你的程序中。
  • 打赏
  • 举报
回复
引用 8 楼 qiuzhihzy123 的回复:
用ashx 的话那又应该如何写呢?
创建一个 ashx 文件,然后写(这里举例)
public void ProcessRequest(HttpContext context)
{
    var param1 = context.Request.QueryString["p1"];
    var param2 = new StreamReader(req.InputStream, Encoding.UTF8).ReadToEnd();
    ..............
}
这里,读取了get url参数,也都去了 post text 消息体参数。因此“短”的参数和“长”的参数都能读取。
吃货程序员 2017-04-11
  • 打赏
  • 举报
回复
百度HttpContext 了解一下是什么东西
吃货程序员 2017-04-11
  • 打赏
  • 举报
回复
引用 15 楼 qiuzhihzy123 的回复:
public void ProcessRequest(HttpContext context) { var obj = context.Request; context.Response.ContentType = "text/plain"; context.Response.Write("Hello World"); } 这里面,obj是获取的数据,我需要怎么去转换数据类型,遍历出来??
我觉得接下来你百度比较好
qiuzhihzy123 2017-04-11
  • 打赏
  • 举报
回复
public void ProcessRequest(HttpContext context) { var obj = context.Request; context.Response.ContentType = "text/plain"; context.Response.Write("Hello World"); } 这里面,obj是获取的数据,我需要怎么去转换数据类型,遍历出来??
吃货程序员 2017-04-11
  • 打赏
  • 举报
回复
接口:写一个网站,对方访问这个网站,并传递过来的一段json,我需要接受这段json,解析成对象(这个方法我有),添加到数据库 这是四个需求 其中只有一个说他已经实现的
peng2739956 2017-04-11
  • 打赏
  • 举报
回复
这跟用什么有什么关系吗,MVC ,webapi 都扯上来了,还有ashx 跟那些玩意有什么关系,LZ最终的目的不就是要解析Json么,那就直接Request.InputStream读取数据之后,转换成json处理不就好了嘛....
insus 2017-04-11
  • 打赏
  • 举报
回复
吃货程序员 2017-04-11
  • 打赏
  • 举报
回复
 public void ProcessRequest(HttpContext context)
        {
            var obj = context.Request;
            context.Response.ContentType = "text/plain";
            context.Response.Write("Hello World");
        }
obj就是拿到的请求的东西
吃货程序员 2017-04-11
  • 打赏
  • 举报
回复
引用 8 楼 qiuzhihzy123 的回复:
各位大神有没有这块的例子??用ashx 的话那又应该如何写呢?
如何写? 你先创建一个空的web程序 添加一个一般处理程序 运行就能直接请求到了 还要怎么写
by_封爱 2017-04-11
  • 打赏
  • 举报
回复
不管是aspx还是ashx 你不就是要获取对方post过来的数据吗? 不就是

private string body 
    {
        get
        {
            var data = "";
            using (var dr = new System.IO.StreamReader(Request.InputStream))
            {
                data = dr.ReadToEnd();
            }
            return data;
        }
    }
就完了吗? 你们说那么多 LZ也不知道怎么回事啊...
qiuzhihzy123 2017-04-11
  • 打赏
  • 举报
回复
各位大神有没有这块的例子??用ashx 的话那又应该如何写呢?
吃货程序员 2017-04-11
  • 打赏
  • 举报
回复
其实做一个接口在HttpHandler这一步处理请求返回就可以了 没有必要再进入asp.net的生命周期
大然然 2017-04-11
  • 打赏
  • 举报
回复
ashx ··
吃货程序员 2017-04-11
  • 打赏
  • 举报
回复
http://blog.csdn.net/linux7985/article/details/44079993 了解一下iis是如何处理asp.net请求的你就知道了
吃货程序员 2017-04-11
  • 打赏
  • 举报
回复
或者你直接弄一个一般处理程序 访问这个一般处理程序 然后直接抛出别人需要的东西 这样都不要加载webform更快一点
加载更多回复(3)

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧