node中https使用时请求不成功,似乎url解析有问题

问题描述:

最近在做electron的小开发,在使用node中https模块发起一个https请求时总是报错,
我请求的地址是一个公司用于测试的地址,要求使用POST和异步请求,数据格式为json,人家服务接口请求格式就是json
最开始使用的是AJAX请求,似乎涉及到跨区请求的问题,请求并没有返回数据。
之后尝试了node的https模块,但是请求不成功。url各种尝试。。。都不行!
代码贴在下面,跪求各路大神指点,本人小白在此谢过!!!

我的代码:

//这个是用ajax请求的
function send_req(serverUrl, req_client_json, successHandler, errorHandler){
    $.ajax({  
        type : "POST",  
        url : serverUrl,
        crossDomain: true,
        data : req_client_json,  
        contentType : "application/json",  
        dataType : "json",  
        success : successHandler,
        error : errorHandler
    });
}

//然后这个是使用htts请求的
function send_req(serverUrl, req_client_json){
    var options = {
        host: serverUrl,
        port: '20682',
        path: '/',
        method: 'POST',
        json: true,
        headers: {
            'Content-Type': 'application/json',
            'Content-Length': req_client_json.length
        }
    }
    const post_req = https.request(options, function(res){
        console.log(1111111111111)
        res.setEncoding('utf8')
        res.on('data', function(chunk){
            console.log(chunk);
        })
        res.on('error', (err)=>{
            aletr("Error: " + err)
        })
    })

    post_req.write(req_client_json);
    post_req.end();
}

下面贴下我的报错信息:

在使用ajax请求的时候(直接执行了请求error的情况):

图片描述


在使用https请求的时候,起初我把url设置成了一个ip地址,错误如下:

图片描述

应该是请求没有成功,控制台并没有打印一系列的111111111

之后,我更改了etc/host文件,将ip地址替换成了一个域名,就是programtest.com,错误信息和使用ip地址相同

然后,在ip地址和域名的前面分别加上https://,似乎这么做并不对,然后报错信息是这个:

图片描述

之后有看网上使用url.parse解析的,然后也试了试这种方法,具体的改动就是:
 //在https请求的参数options中
 host: url.parse(serverUrl)
然后错误信息如下
使用一个ip地址或者域名,在url前面加上https://或者不加都是一样的错误:

图片描述

阅读 2.9k
1 个回答

报错信息其实很明确了啊,把锅推给给你测试的地址的人,然后开始摸鱼吧。


贵司的测试接口直接放到公网上,心也是真大

HTTPS证书不是随便找一个就行的,必须域名和证书对应,我看到115.182.198.228带的证书域名是srv.xinge.com,那就必须用srv.xinge.com这个域名。但是srv.xinge.com指向的是115.182.5.40,所以可以推测是后端复制粘贴了证书就以为能用,把锅推给他们,去吃饭吧。

或者也可以做好好先生,给https.requestoptions加上

checkServerIdentity: () => {},

跳过域名和证书对应的检查。但是不知道之后会不会再出什么问题,所以还是建议甩锅 [斜眼]

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题