【求助C#高手】 c#如何模拟客户端向指定服务端URL GET/POST 数据

demoooo 2010-06-16 07:06:28
我反复用了 HttpRequest ,HttpWebRequest ,WebClient

去GET另外一个服务端地址,虽然GET成功的,但是这都是服务端GET服务端的。 也就是另外一个服务端获得来访的IP是当前操作服务器的IP,而不是操作者的客户端IP

也就是A为客户端用户, B为网站服务器, C为要GET地址的服务端

C这边得到的是B,而不是A

用javascript的XMLHTTP倒是可以,不过我项目里用js太麻烦, 请问能不能用C#真实模拟客户端GET方法?

谢谢

我的意图是在A访问B, B返回一个URL, A再浏览这个URL即可(这个URL是C的地址)
如果 : A的客户端页面输出个<script src="http://c的url" />并刷新页面也就是完成了我的要求. 但是呢,出于设计问题(ajax没刷新),我现在不能在页面输出这条js完成访问,因为页面没刷新. 所以只能想在后台访问这个地址. 而且这个地址需要验证A用户IP.所以后台访问这个地址的时候要必须和客户端一样访问的.

...全文
364 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZHUKY 2010-06-19
  • 打赏
  • 举报
回复
顶顶顶顶.....关注....
demoooo 2010-06-19
  • 打赏
  • 举报
回复
顶...
demoooo 2010-06-18
  • 打赏
  • 举报
回复
顶...
demoooo 2010-06-18
  • 打赏
  • 举报
回复
晚上操刀试试winsock
demoooo 2010-06-17
  • 打赏
  • 举报
回复
还是只能先用js了. 已经用js搞好了.

留着看还有没有高人多给几个思路备用.
xingzhiyun 2010-06-17
  • 打赏
  • 举报
回复
用WinSock模拟HTML的POST请求,
POST /manage/get.aspx?xmlaction=testtype HTTP/1.0
Accept: */*
Accept-Language: zh-cn
Referer: http://www.szswzzb.gov.cn/manage/aaa.aspx
Content-Type: text/xml
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; Trident/4.0; TencentTraveler 4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Host: www.baiducom:80
Content-Length: 68
Connection: Keep-Alive
Pragma: no-cache
Cookie: AJSTAT_ok_times=31; ASP.NET_SessionId=syhiv1ftg1nyqp3qjm05te55

<root><params><para0>cs1</para0><para1>cs2</para1></params></root>
demoooo 2010-06-17
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 code163 的回复:]
这种客户端的事情最好就是用JS实现!要不就是给客户端安装ACTIVE,应该是别无他法!
[/Quote]

activex最佳, 但要客户端安装才可以....
js实现简单,但还要考虑跨域的问题.

我现在只能用js docment.write的方法写到客户端一个"暗藏"的访问链.
CODE163 2010-06-17
  • 打赏
  • 举报
回复

这种客户端的事情最好就是用JS实现!要不就是给客户端安装ACTIVE,应该是别无他法!
threenewbee 2010-06-17
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 demoooo 的回复:]
引用 12 楼 cqq 的回复:
serverB 可以取到 client IP,
然后访问 serverC 的时候,顺便把这个client IP 作为一个参数也传到serverC,
这样serverC就间接的知道了客户端的IP,
因为这一整套的动作都是由客户端发起的,所以还是可以的。


谢谢 ,但是serverC是第三方系统哦, 我没有权力修改它用参数的形式获得客户端IP.
[/Quote]
如果真的有这个技术,那么相当于伪造IP访问网站了。

那么还需要那么多流氓插件和互刷联盟么?
demoooo 2010-06-17
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 cqq 的回复:]
serverB 可以取到 client IP,
然后访问 serverC 的时候,顺便把这个client IP 作为一个参数也传到serverC,
这样serverC就间接的知道了客户端的IP,
因为这一整套的动作都是由客户端发起的,所以还是可以的。
[/Quote]

谢谢 ,但是serverC是第三方系统哦, 我没有权力修改它用参数的形式获得客户端IP.
cqq 2010-06-17
  • 打赏
  • 举报
回复
serverB 可以取到 client IP,
然后访问 serverC 的时候,顺便把这个client IP 作为一个参数也传到serverC,
这样serverC就间接的知道了客户端的IP,
因为这一整套的动作都是由客户端发起的,所以还是可以的。
demoooo 2010-06-17
  • 打赏
  • 举报
回复
顶.........
qiqishardgel 2010-06-16
  • 打赏
  • 举报
回复
友情up!
threenewbee 2010-06-16
  • 打赏
  • 举报
回复
如果目标服务器支持代理服务器判断,可以从客户端获取ip,然后在你的服务器端的http请求里面增加x-forward-for,实现一个代理。

否则需要在客户端实现。除了js,也可以用activex。
q107770540 2010-06-16
  • 打赏
  • 举报
回复
mark.....
amandag 2010-06-16
  • 打赏
  • 举报
回复
不是特别能看懂你的问题,但我想可以用浏览器模拟的方式解决
demoooo 2010-06-16
  • 打赏
  • 举报
回复
谢谢楼上
lunwen888888 2010-06-16
  • 打赏
  • 举报
回复
顶顶顶顶顶顶顶顶顶顶
threenewbee 2010-06-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 demoooo 的回复:]
引用 3 楼 caozhy 的回复:
如果目标服务器支持代理服务器判断,可以从客户端获取ip,然后在你的服务器端的http请求里面增加x-forward-for,实现一个代理。

否则需要在客户端实现。除了js,也可以用activex。

activex还得用户安装呀
[/Quote]
那是必然的。
yifanwu 2010-06-16
  • 打赏
  • 举报
回复
用网络访问实现呀
加载更多回复(1)

62,050

社区成员

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

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

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

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