如何在WebService里获取请求网站的HttpRequest对象

我姓区不姓区 2009-04-20 02:11:51
之前在BLL中写了一个方法,形如:

public static void SomeMethod()
{
//......
HttpRequest req = HttpContext.Current.Request;
//......
}

这样req就能获取到当前网站上下文的请求,现在需要把这个SomeMethod方法移到WebService里面去,这样一来,req获取的就是WebService上的HttpRequest,而不是我调用这个方法的网站的HttpRequest,有什么方法能够获取到调用这个方法的网站的HttpRequest吗?我想通过把HttpRequest作为参数传入SomaMethod,但HttpRequest是不能序列化的,希望大家能提供好的方法。
...全文
1401 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
oufeiren 2010-08-07
  • 打赏
  • 举报
回复

[WebMethod]
public string GetPrice()
{
HttpRequest request = HttpContext.Current.Request;

return request.Form[0] ;
}


我工作中也遇到了这个问题, 你这样是能获取到客户端发送过来的请求的
页面调用 <form action="FlightPrice.asmx/GetPrice" method="post">
注意路径 别写成这样的了,我就犯过这样的错误
/FlightPrice.asmx?op=GetPrice 错误写法
tsp860901 2009-04-21
  • 打赏
  • 举报
回复
这么 晚了 还坚持学习
llsen 2009-04-20
  • 打赏
  • 举报
回复
学习了。。。
pciak 2009-04-20
  • 打赏
  • 举报
回复
mark
jfd198512 2009-04-20
  • 打赏
  • 举报
回复
顶~~ LZ  happy!
我姓区不姓区 2009-04-20
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 Jinglecat 的回复:]
1.
老大,你没睡醒吧? 相对意义的客户端和服务端你分不清楚了?


2.
浏览器(客户端)-> WebApp(服务器/客户端) -> WebService(服务端)
send http                    HttpRequest            HttpRequest(基于的 ASP.NET 的 Web Service,所以才有 HttpRequest,但是这当然是人家的HttpRequest了)

是两个完全八竿子打不着的 HttpRequest 对象的,这本身就是一种远程调用

另外 HttpRequest 是跟 Host 相关的,…
[/Quote]
你没理解错,我也知道WebApp与WebService两者的HttpRequest是两个完全八竿子打不着的,当时可能真的没有睡醒吧,其实发完帖子没多久我就意识到了,已经解决了,不过还是谢谢你:)
Jinglecat 2009-04-20
  • 打赏
  • 举报
回复
你原先的 BLL 就直接泡在你的 WebApp 进程中 ....
Jinglecat 2009-04-20
  • 打赏
  • 举报
回复
1.
老大,你没睡醒吧? 相对意义的客户端和服务端你分不清楚了?


2.
浏览器(客户端)-> WebApp(服务器/客户端) -> WebService(服务端)
send http HttpRequest HttpRequest(基于的 ASP.NET 的 Web Service,所以才有 HttpRequest,但是这当然是人家的HttpRequest了)

是两个完全八竿子打不着的 HttpRequest 对象的,这本身就是一种远程调用

另外 HttpRequest 是跟 Host 相关的,即使 Marshal 了也是无意义的

3.
SomeMethod 需要什么参数或者什么上下文数据,完全由调用端(这里就是你的WebApp)传入,

这个WebService是不知道谁回来调用她的,假如我直接 xmlhttp 调用呢? 哪来的客户端 HttpRequest ?

4.
希望我没理解错
kfps8kfps8 2009-04-20
  • 打赏
  • 举报
回复
标记一下
我姓区不姓区 2009-04-20
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zsuswy 的回复:]
但是参数可以传HttpContext,然后从HttpContext拿HttpRequest
[/Quote]
HttpContext也是不能序列化的
zsuswy 2009-04-20
  • 打赏
  • 举报
回复
但是参数可以传HttpContext,然后从HttpContext拿HttpRequest
Ricercar 2009-04-20
  • 打赏
  • 举报
回复
[WebMethod(EnableSession = true)]
我姓区不姓区 2009-04-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yangqidong 的回复:]
另外定义一个类,把HttpRequest中需要用到的东西填进去?
[/Quote]
这个方法我可以考虑一下


[Quote=引用 3 楼 Sandy945 的回复:]
一定要传HttpRequest ?
[/Quote]
也不是说一定要传,我主要是想获取表单里的内容,而表单我是在Page_Load里动态生成的,我不知道表单里都会有什么
Garnett_KG 2009-04-20
  • 打赏
  • 举报
回复
mark.难.
阿非 2009-04-20
  • 打赏
  • 举报
回复
一定要传HttpRequest ?
yangqidong 2009-04-20
  • 打赏
  • 举报
回复
另外定义一个类,把HttpRequest中需要用到的东西填进去?
chilli6519 2009-04-20
  • 打赏
  • 举报
回复
up

62,040

社区成员

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

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

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

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