当前位置: 首页 > 知识库问答 >
问题:

PHP curl多部分/表单-数据代理-授权(基本)

蒋默
2023-03-14

我有一个问题:我试图发送标题,但什么也没发生。

这是“Live HTTPHeaders”(我替换了url)标题的一部分:

http://some_site/news/

POST /news/ HTTP/1.1
Host: some_site
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://some_site/news/
Proxy-Authorization: Basic MTQ4YjU5YWMtM2VlOS00ZmIzLThlODItOTU0MjcxODhhZTRlOjAyNDdkNWRkNGY1MTE2NWUzODFlNDVhYTY1YzQ5OWYwMTRhYzA2ZTg=
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Content-Type: multipart/form-data; boundary=---------------------------123064818248741452271123522
Content-Length: 893
-----------------------------123064818248741452271123522
Content-Disposition: form-data; name="BJpKD8Fx"

Hello!!!
-----------------------------123064818248741452271123522
Content-Disposition: form-data; name="file"; filename=""
Content-Type: application/octet-stream


-----------------------------123064818248741452271123522
Content-Disposition: form-data; name="parent"

155143
-----------------------------123064818248741452271123522
Content-Disposition: form-data; name="redirect"

0
-----------------------------123064818248741452271123522
Content-Disposition: form-data; name="eggs2"

UzFWa05qVnpjRmw4UWtwd1MwUTRSbmc9
-----------------------------123064818248741452271123522
Content-Disposition: form-data; name="submit"

Äîáàâèòü
-----------------------------123064818248741452271123522--

HTTP/1.1 302 Found

这是我的代码:

<?php

 $parent = 155129;

 function doPost( $url = 'http://some_site/news', $postdata = '' ){

 $resource = curl_init();
 curl_setopt($resource, CURLOPT_URL, $url);
 curl_setopt($resource, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt ($resource, CURLOPT_SSL_VERIFYPEER, 0);
 curl_setopt ($resource, CURLOPT_SSL_VERIFYHOST, 0);
 curl_setopt ($resource, CURLOPT_HTTPHEADER, array('Expect:'));
 curl_setopt ($resource, CURLOPT_HEADER, 1);
 curl_setopt ($resource, CURLOPT_COOKIEJAR, 'cookie.txt');
 curl_setopt($resource,CURLOPT_COOKIEFILE,'cookie.txt');
 curl_setopt($resource, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
 if( $postdata != '' ) {
     curl_setopt($resource, CURLOPT_POST, true);
     curl_setopt($resource, CURLOPT_POSTFIELDS, $postdata);
 }
 curl_setopt($resource, CURLOPT_FOLLOWLOCATION, true);
 $result = curl_exec($resource);
 curl_close($resource);
 return $result;

}

$c = doPost();
preg_match('#id="textarea_form_'.$parent.'" name="(.*?)"#ims', $c, $textName);
preg_match('#<form.*?\/form>#ims', $c, $arr );
preg_match('#name=eggs2.*?value="(.*?)">#ims', $arr[0], $egss2);

$postdata = array(
    $textName[1]=> 'Hello',
   'file'=>'@/;type=application/octet-stream',
   'parent' => $parent,
   'redirect'=> '0',
   'eggs2' => $egss2[1],
   'submit' => iconv('utf-8', 'cp1252', 'Добавить')
);

print_r(doPost('http://some_site/news',$postdata));
print_r( $postdata );

我做错了什么?

谢谢你!

P. S.嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿!!!!我解决了!感谢大家的收看!祝你好运

共有1个答案

韦宏朗
2023-03-14

您需要像这样插入头文件:

curl_setopt($resource, CURLOPT_HTTPHEADER, array(
'X-Apple-Tz: 0',
'X-Apple-Store-Front: 143444,12'
));
 类似资料:
  • 我遇到了一个问题,我无法在我的资源中获取我的表单,变量总是为空 我的资源: 表单模型 我的取货请求: 和我的HttpClient: 为了确保我正在使用代理进行测试并且请求实际上是好的:变量文件名和徽标始终为空。 这是我的绒球.xml: 我不知道问题出在哪里。 我已经看过了多部分的官方resteasy文档,看不出问题在哪里。我已经用MultipartFormDataInput测试过,所有部分都是空的

  • 通常,我需要通过JSOUP将数据以响应multipart/form-data的形式发送到站点 作为一个示例,使用一个简单的窗体来sgeniriruet您的查询。 <表单操作=«localhost:8000»方法=«post»enctype=»多部分/表单数据» <输入类型=»文本»名称=»文本»值=»文本默认值» <输入类型=»文件»名称=»文件1» <输入类型=»文件»名称=»文件2» 提交 通

  • 我目前正在尝试解析我通过Chrome中的Postman插件发送的。然而,我得到的输出如下: 当我尝试调试时,会得到这个输出。当我尝试时,我得到一个空数组,所以我假设数据的格式不正确(只是一个字符串)。在我写我自己的算法之前,我想确定我没有用这个算法重新发明轮子。我做错什么了?或者,如果没有,是否存在一些CakePHP3函数来处理这个问题? 更新 我发现了代码中的错误,路由过程似乎以某种方式将pos

  • 问题内容: 我正在编写一个RESTful API。我在使用不同的动词上载图像时遇到麻烦。 考虑: 我有一个对象,可以通过对URL的发布/放置/删除/获取请求来创建/修改/删除/查看。如果有要上载的文件,则请求是多部分形式;如果只有文本要处理,则请求是application / xml。 为了处理与对象相关的图像上传,我正在做类似的事情: 这里的主要问题是在尝试处理放置请求时,显然$ _POST不包

  • 问题内容: 我正在尝试通过带有POST请求的照片上传 根据自述文件,我应该能够做到这一点 问题是,这不起作用。我收到测试服务器的回复,说它转储了0个post变量。 我已经确认该HTML小页面服务器处于工作状态 所以问题是,请求模块在做什么?有没有更好的方法来发送节点? 问题答案: 经过更多研究后,我决定使用。这使得分段上传非常容易。

  • 我正在尝试通过使用多部分数据主体的JMeter构建HTTP请求。 我有一个HTTP头管理器,其内容类型设置为多部分/表单数据;边界=AaB03x。我选择了“将多部分/表单数据用于POST”。 然后我创建了一个数据主体, 当我运行这个程序时,我发现请求没有正确地发送正文,而是发送了一些随机数据, 发布数据: 并给出错误响应, 我的第二个问题是:请求的第3部分发送一个要上载的文件。我可以通过某种方式传