我们公司的技术以.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对接开发的更多相关文章

  1. 银联支付 Asp.Net 对接开发内容简介

    银联对接开发主要包含测试环境以及生产环境两部分. 其中程序开发部分测试以及生产是相同的. 不同的是,测试环境与生产环境请求支付的Url地址,以及分别使用的证书不同. 一.配置部分 1,测试环境证书获取 ...

  2. 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 ...

  3. 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 ...

  4. 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 ...

  5. 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 ...

  6. 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 ...

  7. 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 ...

  8. 浅谈 PHP 与手机 APP 开发(API 接口开发) -- 转载

    转载自:http://www.thinkphp.cn/topic/5023.html 这个帖子写给不太了解PHP与API开发的人 一.先简单回答两个问题: 1.PHP 可以开发客户端? 答:不可以,因 ...

  9. ThinkPHP3.2对接开发支付宝即时到帐接口

    ThinkPHP3.2对接开发支付宝即时到帐接口 在做一些商城.自动发卡网站.会员积分充值.金币充值等等这类网站都时候,我们极大可能需要使用到第三方都支付接口.不管是财付通.支付宝.银联.贝宝.易宝这 ...

随机推荐

  1. Python wifi掉线重连接

    原理很简单,通过python执行dos命令 : ping 和 netsh 需要用到os和time模块 代码如下: >>> import os >>> print ' ...

  2. Java8 HashMap之tableSizeFor

    Java8对许多内置的容器进行了优化与拓展,其中对HashMap的改变尤其大.之后将进行总结. 最近在看HashMap的源码时,发现了里面好多很不错的算法,相比Java7从性能上提高了许多.其中tab ...

  3. [HMLY]7.iOS MVVM+RAC 从框架到实战

    1.MVVM浅析 MVC是构建iOS App的标准模式,是苹果推荐的一个用来组织代码的权威范式,市面上大部分App都是这样构建的,具体组织模式不细说,iOS入门者都比较了解(虽然不一定能完全去遵守), ...

  4. Python网络编程学习_Day11

    一.协程 1.理论知识 协程,又称伪线程,是一种用户态的轻量级线程. 协程拥有自己的寄存器上下文和栈,协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈. ...

  5. fpga串口通信

    ---恢复内容开始--- 1.波特率的计算公式:9600bps 是指每秒可以传输9600位 则一位需要的时间为1/9600 约等于0.000104 开发板晶振大小为50M则传输一位需要的时间为 0.0 ...

  6. Linux学习初步

    centOS 6.5关闭防火墙步骤  关闭命令:  service iptables stop         永久关闭防火墙:chkconfig iptables off两个命令同时运行,运行完成后 ...

  7. Navicat连接不上MySQL

    [root@localhost init.d]# pwd /etc/init.d [root@localhost init.d]# mysql -u root -p Enter password: E ...

  8. RandomAccessFile类初次使用

    RandomAccessFile : java提供的对文件内容的访问 既可以读文件 也可以写文件 支持随机访问文件 可以访问文件的任意位置 (1)java文件模型 : 在硬盘上的文件是byte byt ...

  9. [UWP小白日记-6]页面跳转过度动画

    前言 在学习中发现页面导航默认是没有过度动画的,直接就导航过去太粗暴了( ̄へ ̄),于是打算上动画结果不言而喻自己进了坑完全不懂动画,然后就是各种疯狂(´・_・`)的搜索资料看了后终于有点头绪. 再后来 ...

  10. ElasticSearch(8)-分布式搜索

    分布式搜索的执行方式 在继续之前,我们将绕道讲一下搜索是如何在分布式环境中执行的. 它比我们之前讲的基础的增删改查(create-read-update-delete ,CRUD)请求要复杂一些. 注 ...