Community Tip - You can Bookmark boards, posts or articles that you'd like to access again easily! X
Hei Community,
we're searching for a suitable c++ library to perform REST requests and parse Json to integrate into toolkit dlls.
Are there any recomendations?
We tryed cpprest/casablanca from microsoft already. We build a sample client without creo and everthing works fine until we integrate it into our creo dll. With this library the dll is not able to be started in creo anymore.
Thanks for your suggestions.
One suggestion would be. You can create Jlink application and do REST operation in Java. If you do not find suitable API in Jlink, you will have to create toolkit application. There are jlink API's to load dll and call C++ methods.
I have not tried it. This is my guess.
For parsing/building JSON messages - I've used RapidJson in the past before. It is very reliable, very fast, and really has great functionality. It is also a header-only library, which is REALLY NICE if you have to compile across multiple versions of Creo.
Then for performing REST requests, the biggest name on the block is really libcurl, which we compile alongside openssl
Past that, I've heard of others that can be helpful such as POCO: https://pocoproject.org/pro/docs/00153-RemotingNGTutorialPart4.html
Hope this helps!
James Sullivan
Hi
we are using CURL and JSON CPP ... precompiled as a .lib and then linked into the build.
https://github.com/open-source-parsers/jsoncpp
Br,
Eike
Hei sully7,
thanks for your answer. I tryed to build curl along open ssl but also didn't manage to get it to work. Are there manuals you recomment?
OK, after struggling for hours I got this compiling.
Unfortunately I got exactly the same issue when loading the dll to creo ;-(
Hei @sully7 ,
we're using Creo 4.0 and Visual Studio 2015 (14). I didn't manage to get curl running. I'm nearly shure that the issue is, that the current libraries are compiled for newer versions of VS.
Can you please tell us how you compile curl with openssl step by step?
What we want to have is a single lib plus header files that can be easily linked to in our VS 2015 project (in an ideal world there are no dependencies in this lib).
Appreciate yout tipps very much. Thanks a lot.
Hi @HellerKoch
There are multiple step by step instructions online. But I also struggled with it a little bit at the beginning.
I have 4 libs after compiling everything that I need to put into my compiler:
- lib_json.lib
- libcurl.lib
- libeay32.lib
- ssleay32.lib
I didn't link it into one lib ... I don't think it's needed also other librarys could need ssl so I think its a better way to not link these together. I put my compiling results as attachment ... they are for VS 2015 / 64 bit / MT. We use /FORCE:MULTIPLE inside some of our projects ... so it could be that libeay and protk_dll_NU.lib have pqueue_free and proqueue_pop inside.
Br,
Eike
Thanks - that brought me on the right track. Got it compiling now with vcpkg manager. curl and ssl are compiled separately as static library now. With that we are able to link it into MS VS v140 Projects. Thanks Guys. Appreciate your work.
CREOSON already does this using JSON over HTTP. (Any language... including C++)
It is OpenSource -- so if you wanted to use that core as a foundation and extend using your own DLLs - I am sure it would be pretty easy.
Dave