Как устранить ошибку назначения ключа SSL в контроллере Odoo - PullRequest
1 голос
/ 01 октября 2019

Я столкнулся с ошибкой Odoo SSL. Ошибка:

raise SSLError(e, request=request)
SSLError: HTTPSConnectionPool(host='12.123.12.12', port=443): Max retries exceeded with url: /api/logistics/filldetailsntf (Caused by SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:727)'),))

Я пишу контроллер, и я проверял его. Мне нужно также знать, как отключить / обойти проверку сертификации SSL в этом контроллере. Я вставляю контроллер ниже.

# -*- coding: utf-8 -*-
from odoo import http
import ssl
import requests
import json
from odoo.http import request
import urllib, urllib2
from odoo import report as odoo_report
import datetime
import pytz
import base64
import logging

_logger = logging.getLogger(__name__)

url = 'https://12.123.12.12/api/logistics/filldetailsntf'
authentication = '129487521452XSDFG156235C6B353CD75QWERBVFGHJAA96AA99EDSJUITH7AAF65258F22871E7D415EB4A77CF7B4CB513A993680FC6053EAE6RT785YUIJ124'


class MyApi(http.Controller):

    @http.route("/my/post/api/path", url=url, auth="public", type='http', methods=['POST', 'GET'], csrf=False, cors='*',
                ssl=False, verify=False)
    def post_api_method(self, **kw):
        partners = request.env['import.logic'].sudo().search_read([('customer', '=', 'TRADING COMPANY')])
        print kw
        headers = {'Content-Type': 'application/json'}
        body = {'results': {"shipmentType": "partners",
                            "shipperName": "Name",
                            "consigneeName": "*****",
                            "vslexparvlDate": "2019-03-05 05:55:13:000",
                            "vsldischlDate": "2019-04-02 05:55:13:000",
                            "docRecvByMailDate": "2019-03-05 05:55:13:000",
                            "orgDocRecvgDate": "2019-03-24 05:55:13:000",
                            "vesselArvlDate": "2019-03-19 05:55:13:000",
                            "bLAwbNumber": "*****",
                            "houseBL": "****",
                            "dischargingPort": "*****",
                            "landingPort": "*****",
                            "containerNumber": "*****",
                            "delOrderDate": "2019-03-29 05:55:13:000",
                            "delOrderNumber": "******",
                            "bayanNumber": "*****",
                            "bayanDate": "2019-03-30 05:55:13:000",
                            "containerType": "*****",
                            "dutyPaidDate": "2019-03-22 05:55:13:000",
                            "transportNTFTerminal": "***",
                            "transportDirCustomer": "***",
                            "demmurageDate": "2019-03-27 05:55:13:000",
                            "lastDetentionDate": "2019-03-27 05:55:13:000",
                            "eIRReturnToShipLine": "****",
                            "eventUpdateStatus": "Delivered"
                            }}
        response = requests.post(url, json.dumps(body), headers=headers)
        return response

Это код, который я написал. Сначала мне нужно отправить данные из моего odoo в этот API. Пока я тестировал, я получил эту ошибку. Сначала мне нужно решить эту ошибку ssl, и мне нужно назначить правильное поле для каждого ключа со значением моего поля из partner, которое упоминается в коде.

Я использую Odoo.sh, если кто-нибудь может помочь мне.

...