​双边约定了是放在http的head里面的,在curl中curl_setopt($ch, CURLOPT_HTTPHEADER, array("sessionId: 123456"));
用js已经实现了,但现在要用php,加密的东西发过去能解,现在就是sessionId没发成功所以拿不到接口,请帮忙啊who

解决方案 »

  1.   

    不是这么发的 你看哈 php手册中说的 怎么用curl发送cookie
      

  2.   

    session_id() 函数得到  
      

  3.   

    lz还是不理解session的原理那。
    session是靠cookie中的一个session_id 从而在服务器端获取相应session信息的,所以要用到curl的发送COOKIE的方法
      

  4.   

    主要问题是 array("sessionId: 123456") 这样写是错的如果双方约定这样传,写入header作为一行也无可厚非,只是这样做比较奇怪
    如果这个session只是普通浏览session,还是应该用
    CURLOPT_COOKIE / CURLOPT_COOKIESESSION
      

  5.   


    第一次登录我是拿到了sessionId的,第二次调用留言接口我需要把sessionId先发过去认证一下,
    暂且当sessionId="123456";
    curl_setopt ($ch, CURLOPT_COOKIE , "sessionId='123456'" );
    function curl_request($url,$type="GET",$params='', $header=array(), $headback=0){
    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch, CURLOPT_URL, $url); // 地址
    curl_setopt($ch, CURLOPT_HEADER, $headback); // 1:返回内容中包含 HTTP 头
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); if (!empty($header))
    curl_setopt ($ch, CURLOPT_COOKIE , $header );
    //curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    switch ($type){
    case "GET" : curl_setopt($ch, CURLOPT_HTTPGET, true);break;
    case "POST": curl_setopt($ch, CURLOPT_POST,true);
         curl_setopt($ch, CURLOPT_POSTFIELDS,$params);break;
    case "PUT" : curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "PUT");
         curl_setopt($ch, CURLOPT_POSTFIELDS,$params);break;
    case "DELETE":curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
          curl_setopt($ch, CURLOPT_POSTFIELDS,$params);break;
    }
    $file_contents = curl_exec($ch);  // 获得返回值
    curl_close($ch);
    return $file_contents;
    }函数是这么写的,我通过CURLOPT_COOKIE这个方法也发送了还早注册拿到结果
    $result = curl_request("http://XXXX/atc/?jsonStr=".$jsonStrParam, "GET", '', $header);
    请帮我看看哇
      

  6.   


    cookie的方法我也发过,没成功,是在我知道并且获取到了sessionId的情况下,要请求java接口,需要先发个sessionId过去验证,约定是放在http头,js好实现,手机端的,有个类能直接搞定,php的惭愧了,搞了半天了,一直验证不对