2017-01-12 7 views
9

मैंहाइपर कहते को HTTPS URL के लिए "http के लिए अमान्य योजना"

hyper = "0.10" 

और निम्नलिखित कोड है:

let client = Client::new(); 
let mut res = client.get("https://google.com").send().unwrap(); 

जंग मुझे त्रुटि संदेश देता है, जैसे कि यह एसएसएल नहीं है समर्थन:

Http के लिए अमान्य योजना

यह डेबियन जेसी पर जंग 1.14.0 पर है।

एसएसएल के साथ एचटीटीपीएस यूआरएल में कनेक्ट करने के लिए हाइपर कैसे प्राप्त करूं?

+0

क्या आप पूर्ण त्रुटि संदेश दिखा सकते हैं? –

+0

आप [यह उत्तर] देखना चाहते हैं (https://stackoverflow.com/questions/41614923/how-to-reach-an-https-site-via-proxy) जो नए 'हाइपर-नेटिव-टीएलएस का उपयोग करता है) 'क्रेट – squiguy

+0

हाइपर 0.11 के लिए, उत्तर 'क्लाइंट कॉन्फ़िगरेशन' के अंतर्गत दस्तावेज़ में है: https://hyper.rs/guides/client/configuration/। – steamer25

उत्तर

17

इस प्रयास करें:

extern crate hyper; 
extern crate hyper_native_tls; 

use hyper::Client; 
use hyper::net::HttpsConnector; 
use hyper_native_tls::NativeTlsClient; 

fn main() { 
    let ssl = NativeTlsClient::new().unwrap(); 
    let connector = HttpsConnector::new(ssl); 
    let client = Client::with_connector(connector); 
    let mut res = client.get("https://google.com").send().unwrap(); 
} 

अधिकतर this answer से लिया। क्या गायब था Client::with_connector टुकड़ा था।

+0

दिलचस्प, इसलिए 'हाइपर' सुनिश्चित करें कि आपके पास 'https' योजना की अनुमति देने से पहले एक टीएलएस-सक्षम ग्राहक है। काफी अच्छा है! –

+0

जादू की तरह, यह बस काम करता है! – njaard

+1

@MatthieuM। मेरा मानना ​​है कि हाल ही में बदलाव था क्योंकि टीएलएस संबंधित कोड दूसरे क्रेट में डाल दिया गया था। यह कोड हाइपर 0.10 का उपयोग कर रहा है। – squiguy

संबंधित मुद्दे