通过HttpModule管道,帮助api对接开发
我们公司的技术以.net为主,最近公司的项目需要和其它以java为主的公司搞对接。
.net提供webapi由java请求调用。
目前出现java说调用了,但是.net一直接收不到数据。两方开发人员沟通能力都不足,导致问题一直无法解决。
现不知道是.net接收不到信息的问题,还是model和传过来的参数不匹配导致无法解析的问题。
为了验证是否接收到信息。我通过module管道拦截请求的数据
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.IO;
using SFast; namespace DBModels
{
public class MyHttpModule :IHttpModule
{
public void Dispose() { } #region IHttpModule 成员
public void Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(Application_EndRequest);
} #endregion public void Application_EndRequest(object sender, EventArgs e)
{
HttpApplication application = sender as HttpApplication; HttpContext context = application.Context;
StreamReader reader = new StreamReader(context.Request.InputStream);
string data = reader.ReadToEnd();
StreamWriter sw = new StreamWriter("c:\\error.txt", true);
try
{
sw.WriteLine("\r\n");
sw.WriteLine(DateTime.Now.ToString() + " QueryString :" + context.Request.QueryString.ToString());
sw.WriteLine(DateTime.Now.ToString() + " Headers :" + context.Request.Headers.ToString());
sw.WriteLine(DateTime.Now.ToString() + " 参数body :" + data);
}
catch (Exception)
{
throw;
}
finally
{
sw.Flush();
sw.Close();
}
}
}
}
通过以上代码,发现参数和.net创建的module匹配不上,导致webapi解析不了。
注意:通过以上代码获取参数后,就可以删除了。操作中我发现context.Request.InputStream 被读取后就无数据了。代码页面就接收不到数据了。
通过HttpModule管道,帮助api对接开发的更多相关文章
- 银联支付 Asp.Net 对接开发内容简介
银联对接开发主要包含测试环境以及生产环境两部分. 其中程序开发部分测试以及生产是相同的. 不同的是,测试环境与生产环境请求支付的Url地址,以及分别使用的证书不同. 一.配置部分 1,测试环境证书获取 ...
- Google Map API V3开发(1)
Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...
- Google Map API V3开发(2)
Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...
- Google Map API V3开发(3)
Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...
- Google Map API V3开发(4)
Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...
- Google Map API V3开发(5)
Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...
- Google Map API V3开发(6) 代码
Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...
- 浅谈 PHP 与手机 APP 开发(API 接口开发) -- 转载
转载自:http://www.thinkphp.cn/topic/5023.html 这个帖子写给不太了解PHP与API开发的人 一.先简单回答两个问题: 1.PHP 可以开发客户端? 答:不可以,因 ...
- ThinkPHP3.2对接开发支付宝即时到帐接口
ThinkPHP3.2对接开发支付宝即时到帐接口 在做一些商城.自动发卡网站.会员积分充值.金币充值等等这类网站都时候,我们极大可能需要使用到第三方都支付接口.不管是财付通.支付宝.银联.贝宝.易宝这 ...
随机推荐
- jQuery2.x源码解析(DOM操作篇)
jQuery2.x源码解析(构建篇) jQuery2.x源码解析(设计篇) jQuery2.x源码解析(回调篇) jQuery2.x源码解析(缓存篇) jQuery这个类库最为核心重要的功能就是DOM ...
- [翻译]Eureka一窥
什么是Eureka? Eureka是一个基于REST的服务,主要用在AWS云环境作为服务发现,负载均衡和失败转移.我们叫这个服务,Eureka服务. Eureka也有一个JAVA客户端组件, Eure ...
- 【原创】NSURLSession HTTPS Mutual Authentication
1.引入<NSURLSessionDelegate>协议 2.登录验证请求 -(void)authenticate { NSURL *url = [NSURL URLWithString: ...
- 《Dynamic Topic Detection and Tracking: A Comparison of HDP, C-Word, and Cocitation Methods》笔记
原文地址:http://onlinelibrary.wiley.com/doi/10.1002/asi.23134/abstract 黄色背景是我认为比较重要的,红色字体是我自己的话. 动态主题监测与 ...
- git 本地给远程仓库创建分支 三步法
命令如下: 1:本地创建分支dev Peg@PEG-PC /D/home/myself/Symfony (master) $ git branch dev 2:下面是把本地分支提交到远程仓库 Peg@ ...
- awk-模式匹配
使用awk作为文本处理工具,正则表达式是少不了的. 要掌握这个工具的正则表达式使用.其实,我们不必单独去学习它的正则表达式.正则表达式就像一门程序语言,有自己语法规则已经表示意思. 对于不同工具,其实 ...
- python学习-基础语法
字符编码 1.python 2.x 默认是ASCII 编码 不支持中文,所以在代码有中文的时候 需要在文件最上一行加上#coding=utf-8.python 3.x则没有该问题. 变量命名规则 1. ...
- http状态码200,300,404等是什么意思
在学习网页设计的时候都应该知道状态码,但我们常见的状态码都是200,404,下面介绍其他的状态值 1开头的http状态码 表示临时响应并需要请求者继续执行操作的状态代码. 100 (继续) 请求者 ...
- canvas实现画板功能(渐变、动画、阴影...)
刚刚在博客园落户了,希望能在这认识更多大神,希望能和大家交好朋友. 闲来无事,把以前用canvas写的画板代码改进了一番,用Html5提供的表单标签给其 加了一个选择颜色的功能,因此发现了该标签的一个 ...
- pack://application:,,,/
FrameworkElementFactory gridFactory = new FrameworkElementFactory(typeof(Grid)); gridFactory.SetValu ...