c# 下的webservice方法:public byte[] Report(Guid id, string[] headers, byte[] content)这三个参数都是由客户端发送给server端的我要用php来实现该方法,请问我应该如何来接收这几个参数呢? 第一个guid我已经能够接收到了 ,是用char类型接收的,但是下边两个怎么也取不到, 求大家帮帮忙~
解决方案 »
- PHP调用类函数时传入的参数为空,求大神帮忙解决!
- swfupload 后台php文件获取参数
- php一个类‘没有被实例化’和‘被实例化’,这俩性能差的多么
- 请教一下关于Session的问题
- 想攒一个 4000多的web服务器,那位大哥有经验,说说买什么配置,小弟谢谢鸟!
- 新手关于session的问题
- 在线等,如何动态选择数据库表中的列????
- 如何在php中得到环境变量upload_max_filesize的值?
- 简单问题,谁能和我说这段代码1、怎么用?2、它是干什么的?
- php网站注册漏洞,希望求得原理
- 文件上传时怎样限制文件大小以及改变文件名称?
- 关于php中数组元素不存在时,出现500错误
请大家帮帮忙~~~
你们之间通信用的是http吗?把你的环境描述清楚
file_put_contents('test.txt', print_r( func_get_args(), 1));客户端访问后,查看 test.txt 的内容,如还不清楚就贴出来
我要用另一种语言 也就是php 来实现server端的, 但是现在客户端传过来的那些参数我现在取不到,抓包能看见,但是我就是只能取到那个id 其他的两个我取不到……我想先取到这三个参数并把它们写到一个文件中,但是只能取到一个id。
这是我server端实现这个接口的方法: data1 , data2, data3分别对应着Guid id, string[] headers, byte[] contentpublic function Report($data1, $data2, $data3) {
$valueArray = get_object_vars($data1);
$id = $valueArray["id"];
$valueArray = get_object_vars($data2);
$headers = $valueArray["headers"];
$valueArray = get_object_vars($data3);
$content =base64_decode($valueArray["content"]);
$fp=fopen("1.txt", "a");
fwrite($fp, "Reort:\nid: $id\nhearders: $hearders\ncontent: $content");
fclose($fp);
}
public function Report() {
file_put_contents('test.txt', print_r( func_get_args(), 1));
}
但是怎么把headers里面的那三个值取到呢 ?
这是加了:file_put_contents('test.txt', print_r( func_get_args(), 1));
之后得到的~
Array
(
[0] => stdClass Object
(
[id] => 15dbae87-da8b-4d5d-a702-8d1f9e93ceda
[headers] => stdClass Object
(
[string] => Array
(
[0] => JM_MD5: NTY0MTI5MzA1YTU3OWM2NDI0MjQwYTdkMjY4YTcxZGQ=
[1] => JM_VER: bmV0MTY=
[2] => JM_ID: MTVkYmFlODctZGE4Yi00ZDVkLWE3MDItOGQxZjllOTNjZWRh
) ) [content] => <Node name="JIANGMIN-MADONG" n_clienttype="257" mode="update" /><BaseInfo IP="fb00a8c0;128a8c0;12ba8c0;" Mac="6c-f0-49-96-69-61;00-50-56-c0-00-01;00-50-56-c0-00-08;" OSVersion="Windows 7 Ultimate" VirusLibDate="2011-03-29 13:26:43" mode="update" />
))
public function Report($data1, $data2, $data3) {
$i = $data1->id;
$headers = $data2->string;
$content = $data3->content;
...其中 $content 的内容可参考下面的代码处理$s = <<< TEXT
<Node name="JIANGMIN-MADONG" n_clienttype="257" mode="update" /><BaseInfo IP="fb00a8c0;128a8c0;12ba8c0;" Mac="6c-f0-49-96-69-61;00-50-56-c0-00-01;00-50-56-c0-00-08;" OSVersion="Windows 7 Ultimate" VirusLibDate="2011-03-29 13:26:43" mode="update" />
TEXT;preg_match_all("@<(\w+) (.+?) +/>@", $s, $r);foreach($r[1] as $i=>$k) {
parse_str( str_replace('" ', '"&', $r[2][$i]), $ar[$k]);
}
print_r($ar);
$id=$data1->id;
$headers=$data2->string;
$content=$data3->content;
$fp=fopen("1.txt", "a");
file_put_contents('1.txt', print_r( func_get_args(), 1));
fwrite($fp, "Reort:\nid: $id\n");
fwrite($fp,"headers: $headers\n");
fwrite($fp,"content: ".$content);
但是打到txt中是这样的:
Reort:
id: 0acde6d1-8e83-4075-a9eb-2494b6b2f9e7
headers:
content:
为啥后边两个还是取不到呢 ??