Edit: Here is a solution by Maxime:
import c4d
import urllib2
import os
f = os.path.join(os.path.dirname(c4d.storage.GeGetStartupApplication()), "resource", "ssl", "cacert.pem")
urllib2.urlopen("https://google.com", cafile=f)
Edit: Here is a solution by Maxime:
import c4d
import urllib2
import os
f = os.path.join(os.path.dirname(c4d.storage.GeGetStartupApplication()), "resource", "ssl", "cacert.pem")
urllib2.urlopen("https://google.com", cafile=f)
This is a SSL certificates issue
Checkout my python tutorials, plugins, scripts, xpresso presets and more
https://mikeudin.net
Hi, @merkvilson thanks for contacting us.
Unfortunately, this is an already a known issue and it's not fixed yet.
You may find some workaround by googling the error message, but this indeed introduce some security issue so we can't recommend this as a correct workaround.
Cheers,
Maxime.
MAXON SDK Specialist
It seems like there are two ways of solving this problem.
pip install --upgrade certifi
open /Applications/Python\ 3.6/Install\ Certificates.command
(Yes. I know C4D works only with python 2.7 :sweat_smile: )Is it possible to execute these codes directly from python plugin?
As I remember, there is a pip module which can be imported via import pip command in python code and then install the desired modules but will it work with C4D's python implementation?
Hi @merkvilson, I indeed overlooked the issue, since in all topic it's only Python 3.6, I didn't tried.
But in MacOs, certifi is not installed (which cause the issue), but you can directly get the certificate file to make it works as expected. Here the code which works on mac and windows.
import c4d
import os
import ssl
import urllib
f = os.path.join(os.path.dirname(c4d.storage.GeGetStartupApplication()), "resource", "ssl", "cacert.pem")
context = ssl.create_default_context(cafile=f)
urllib.urlopen("https://google.com",context=context)
Or with urllib2
import c4d
import urllib2
import os
f = os.path.join(os.path.dirname(c4d.storage.GeGetStartupApplication()), "resource", "ssl", "cacert.pem")
urllib2.urlopen("https://google.com", cafile=f)
MAXON SDK Specialist
Thanks, Maxime! I'll check it as soon as one of the beta testers will be available online to test it out.
I'm getting this error message on windows pc. I guess this is expected behavior on windows, right?
urllib2.HTTPError: HTTP Error 405: METHOD NOT ALLOWED
@merkvilson said in C4D's python implementation on Mac and PC:
urllib2.HTTPError: HTTP Error 405: METHOD NOT ALLOWED
Does it happen on all websites? Or only a specific one? Could you try to open https://google.com
Here it's working nicely on windows/mac
MAXON SDK Specialist
I tried again and it worked perfectly.
I'm not sure what caused the previous problem. I probably did something wrong.
I'm still testing it on my windows pc, and I'm not getting any errors.
I guess this thread will be marked as solved in a few minutes :joy:
Hey everyone,
i am having this problem where I want to download an assets (zipfile) from a private repo on GitHub.
I've started to develop it with requests
from there everything worked fine... now I am trying to port it to urllib2
for C4D but it doesn't work anymore...
'Accept': 'application/octet-stream'
will always result in: HTTP Error 415: Unsupported Media Type
If I get rid of 'Accept': 'application/octet-stream'
it will give me the application/json
headers = {
'Authorization': 'token %s' % (MYTOKEN),
'Accept': 'application/octet-stream',
}
url = 'https://api.github.com/repos/USER/REPO/releases/ID'
request = urllib2.Request(url, headers=headers)
response = urllib2.urlopen(request)
print response.read()
#GIVES ME:
#urllib2.HTTPError: HTTP Error 415: Unsupported Media Type
Any idea how to avoid the HTTP Error 415
and download the zip to disk?
Really hard to find something about this anywhere...
Any help is appreciated.
Thanks,
Lasse
Hi Lasse,
you're probably having some issues with authorization.
You're getting a JSON response which may indicate that your requested URL cannot be delivered.
What's the content of the reponse if you print it?
Does it happen with a public repo as well?
Best,
Robert
@mp5gosu
Hi Robert!
Haven't tested it with a public repo yet, but I'll bet its going to work ... the print
of the response
gives me:
urllib2.HTTPError: HTTP Error 415: Unsupported Media Type
which I can't find much info for ...
By the way, the URL you provided doesn't reflect GitHubs scheme. It is actually https://api.github.com/USER/REPO/releases/ID
@mp5gosu Yep, the link is coming from the provided JSON data. Also removing the repo
from the link gives me the same error!
Is it possible that this has something to do with 'Accept': 'application/octet-stream'
? Isn't it possible to stream with urllib2?