element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Azure Sphere Module
  • Products
  • Dev Tools
  • Avnet Boards Community
  • Azure Sphere Module
  • More
  • Cancel
Azure Sphere Module
Forum Azure Sphere HTTP Client C Code Example?
  • Forum
  • Documents
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Azure Sphere Module to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Verified Answer
  • Replies 11 replies
  • Answers 4 answers
  • Subscribers 3 subscribers
  • Views 2959 views
  • Users 0 members are here
  • azurespherech
  • azure sphere
  • http client
  • azuresphkt
  • c programming
  • azure sphere module
Related

Azure Sphere HTTP Client C Code Example?

Sean_Miller
Sean_Miller over 6 years ago

Does anyone have any leads on a tutorial or example code for using the Azure as an HTTP Client with C code?

 

In my past, I've successfully used C++ on Linux microcontrollers to act in part as an HTTP Client to hit APIs such as Darksky or Nest.  I attempted to port the code to the Azure C environment and its definitely tedious - leaving me to think there are probably some Visual Studio references that could readily be used instead.

 

Thanks,

Sean

  • Sign in to reply
  • Cancel

Top Replies

  • peterfenn
    peterfenn over 6 years ago +3 verified
    Sean There are some HTTP related projects under Microsoft Azure Sphere samples: https://docs.microsoft.com/en-us/azure-sphere/resources/sample-links https://github.com/Azure/azure-sphere-samples -Pete…
  • Sean_Miller
    Sean_Miller over 6 years ago in reply to peterfenn +3 suggested
    Was able to get the example HTTPS client code to work. Had it hit www.google.com with success. However, api.darksky.net and the Nest Thermostat API gave this error Connected to firebase-apiserver17-tah01…
  • Sean_Miller
    Sean_Miller over 6 years ago +2
    Man, you are helpful and quick! I need to be building my deck today on my day off, but you keep feeding my brain distracting me. -Sean
  • peterfenn
    0 peterfenn over 6 years ago

    Sean

     

    There are some HTTP related projects under Microsoft Azure Sphere samples:

     

    https://docs.microsoft.com/en-us/azure-sphere/resources/sample-links

     

    https://github.com/Azure/azure-sphere-samples

     

    -Peter

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • Sean_Miller
    0 Sean_Miller over 6 years ago

    Man, you are helpful and quick!  I need to be building my deck today on my day off, but you keep feeding my brain distracting me.

     

    -Sean

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Sean_Miller
    0 Sean_Miller over 6 years ago in reply to peterfenn

    Was able to get the example HTTPS client code to work.

     

    Had it hit www.google.com with success.

     

    However, api.darksky.net and the Nest Thermostat API gave this error

    Connected to firebase-apiserver17-tah01-iad01.dapi.production.nest.com (52.4.203.41) port 9553 (#0)
    * successfully set certificate verify locations:
    *   CAfile: /mnt/apps/011b3254-6b4e-4af1-bc81-22e7f677f4bf/certs/DigiCertGlobalRootCA.pem
      CApath: /etc/certs/
    * ALPN, offering http/1.1
    *  CA signer not available for verification
    * Closing connection 0
    curl_easy_perform (curl err=77, 'Problem with the SSL CA cert (path? access rights?)')

     

    Looks like I need to read up on SSL certificates to sort this one out.  Looks like I have to find a way to generate a new .pem file that will be acceptable by the nest server, in the above case.  Things that make you say "hmmmm???"

     

    See ya',

    Sean

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • peterfenn
    0 peterfenn over 6 years ago in reply to Sean_Miller

    Did you update your app_manifest.json file with the URL of the website you are accessing?

    ie.
    image

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • Sean_Miller
    0 Sean_Miller over 6 years ago in reply to peterfenn

    Yes.  Have it in there.

     

    Used google and it worked.  Tried IFTTT and Yahoo as well.  However, they redirect out of the domain which results in a different problem.  Putting in the IP addresses directly fixes that, but results in getting the same CA signer not available for verification error.

     

    Looks like in 2015 someone had a similar issue on another platform and it was due to the certificate:

    https://www.wolfssl.com/forums/topic702-solved-ca-signer-not-available-for-verification.html

     

    My bets are that I need to change out this file:  DigiCertGlobalRootCA.pem

     

    Just don't know where to get it.

     

    When I pulled this off in Linux on a raspberry pi, I used a package titled OpenSSL.  It didn't have me do anything with a certificate in the code itself.  Perhaps it handled that on its own.

     

    See ya',

    Sean

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • peterfenn
    0 peterfenn over 6 years ago in reply to Sean_Miller

    Sean

     

    Not sure why you are bumping into this. The most efficient way to get quick resolution on this is to:
    a) Summarize the issue as succinctly as possible and
    b) Post this to the Microsoft MSDN Azure Sphere forum,
    ...that way we can get Microsoft specialist resources in the loop to advise

    Here's the link:
    https://social.msdn.microsoft.com/Forums/en-US/home?forum=azuresphere

    -Peter

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • Sean_Miller
    0 Sean_Miller over 6 years ago in reply to peterfenn

    Thanks!  I entered a ticket.

     

    I found one post with a similar issue that was resolved, but it was not clear on how he resolved it.  So, there is light at the end of the tunnel.

     

    After this, I hope to make it catch web socket hits on a port.  Once I got this, I'll have it fully IoT tricked out ready to be an Alexa EndPoint.

     

    See ya',

    Sean

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Sean_Miller
    0 Sean_Miller over 6 years ago in reply to peterfenn

    Haven't heard back yet on the forum, but I found this article that talked about how to work around the certificate.

     

    I added this line in the main where the curl is doing all its setopts:

     

    res = curl_easy_setopt(curlHandle, CURLOPT_SSL_VERIFYPEER, false);

     

    It allowed it to return the api.  I feel I'm somewhat circumventing security, but, hey, I'm just asking for the current weather.

     

    -Sean

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • peterfenn
    0 peterfenn over 6 years ago in reply to Sean_Miller

    Sean

     

    You seem pretty resourceful! Good to hear you have a workaround :-)

    PS: Which Weather APIs are you calling? (AccuWeather / Weatherbit / OpenWeatherMap / Dark Sky, etc?)

    -Peter

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Sean_Miller
    0 Sean_Miller over 6 years ago in reply to peterfenn

    I’m using Dark sky.  It returns a Json string that has about everything I’d ever need.

     

    Next, I need to see if Microsoft already has a parser I can leverage.

     

    see ya,

    Sean

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube