ofxHttpUtils

Hi all,
I need to urgently port an OSX app to code blocks running on XP. I’ve gotten pretty far by starting with an OSC example, and updating install.xml files for addons so that I could use the great addon adding plugin.

I am currently stuck with ofxHttpUtils from the addons site though. I get a long list of errors starting with:

  
..\..\..\libs\poco\libs\libPocoNetmt.a(HTMLForm.o):HTMLForm.cpp:(.text+0x1ddc)||undefined reference to `Poco::NullInputStream::NullInputStream()'|  

the install.xml file I created for it reads:

  
<install>  
	  
	<version>0.02</version>  
	<author>Chris OShea, arturo castro </author>  
	<url></url>  
	  
	<add>  
	  
		<src>  
			<folder name="addons/ofxHttpUtils/src">  
				<file>../../../addons/ofxHttpUtils/src/ofxHttpUtils.h</file>  
				<file>../../../addons/ofxHttpUtils/src/ofxHttpUtils.cpp</file>  
				<file>../../../addons/ofxHttpUtils/src/ofxHttpTypes.h</file>  
				<file>../../../addons/ofxHttpUtils/src/ofxHttpEvents</file>  
			</folder>  
		</src>  
		  
		<include>  
			<path>../../../addons/ofxHttpUtils/src</path>  
		</include>  
		  
	</add>  
	   
</install>  
  

does anyone have any advice? I spend all my time in xcode!
thanks,
nay.

You using openframeworks 006? You need to make sure Poco is included in your project.

But I thought it was included in all 006 projects.

By the way there is an issue with threads & poco Net in windows, if your internet connection is lost and you request something using Net, it might crash the software.

thanks for the speedy reply chris.
i just downloaded the most recent OF, although the code blocks install is old.
I’ll be by that machine again in the morning so will see if I can suss out the linking and post back.
thanks for the heads up on that potential crash too.
cheers,
nay.

hi - i just took a look at the project file and sure enough all of those linker and compiler paths are in there. i have the most recent OF and code blocks.

any other advice? i am completely stuck!

*EDIT*
i have commented out all the references to ofxHttpUtils and the app compiles and runs. poco must be included as it is OF 06 and there are at least another 5 addons in there. could there be some other quirk in the ofxHttpUtils code? or are there even alternative addons I can use to call server scripts and receive a response in OF on windows?

nay its hard to tell.

are you on codeblocks or visualstudio?

if codeblocks, post up just your project file (not everything) and i will take a look

thanks chris
zip of code blocks project file only attached (haven’t changed project name since starting with the osc example). i copied the src of ofxHttpUtils into
addons/ofxHttpUtils/src
then added the install.xml file in my first post to
addons/ofxHttpUtils
and added it to my project using the plugin (along with all my other addons)
please let me know if i can provide anything else to help figure this out.
cheers,
nay.

oscReceiverExample.zip

within you have

but you also need

Sorry I forgot to say that above in an earlier reply

thanks chris, but I just added that one line and I still get the same errors!

*EDIT*

I got a new copy of the osc receiver example and added ofxthread and ofxhttputils and got the same compile errors after adding the line you suggested. i have uploaded the project folder, and the ofxhttputils folder that i had in addons. please let me know if you have any other suggestions!

files.zip

okay so i have gotten it working (sloppily). seems the version of poco distributed is stripped back from the earlier dev versions. I downloaded poco from here:
http://github.com/lian/ofx-dev/tree/master/libs/poco/

copied all the DLL files into the bin folder of my app, and added all the *.a files in poco\lib to the existing ones:

  
		<Add option="../../../libs/poco/libs/libPocoFoundationmt.a" />  
			<Add option="../../../libs/poco/libs/libPocoUtilmt.a" />  
			<Add option="../../../libs/poco/libs/libPocoXMLmt.a" />  
			<Add option="../../../libs/poco/libs/libPocoNetmt.a" />  
			<Add option="../../../libs/poco/libs/libPocoFoundation.a" />  
			<Add option="../../../libs/poco/libs/libPocoUtil.a" />  
			<Add option="../../../libs/poco/libs/libPocoXML.a" />  
			<Add option="../../../libs/poco/libs/libPocoNet.a" />  
			<Add option="../../../libs/poco/libs/libPocoFoundationd.a" />  
			<Add option="../../../libs/poco/libs/libPocoUtild.a" />  
			<Add option="../../../libs/poco/libs/libPocoXMLd.a" />  
			<Add option="../../../libs/poco/libs/libPocoNetd.a" />  

it now compiles and runs - hoorah! thanks for your help chris. would have had NO idea without it!

hi ,

Im getting the same issues as nay - same errors reported with Poco. ive tried in 0.06 and 0.061. im running codeblocks on windows 7 , all other examples/apps are running okay.

could you post a zip of your version of Poco Chris?

thanks

Are you using the latest ofxHttpUtils?

http://github.com/arturoc/ofxHttpUtils

Make sure you copy an example from 0061 when starting your project, as it sounds like you are making a new project but forgetting to include some poco stuff?

Chris,

Using the latest ofxHttpUtils but I was trying to compile under 0.06.

Working fine now. thanks

Hi,

im having problems with url encoding and the hash symbol. any url with the has seems to have it omitted before the request is made

i.e http://search.twitter.com/search.atom?l-…-frameworks

is requested as http://search.twitter.com/search.atom?lang=en&q=

any ideas?

the urls need a special encoding and not every symbol is supported, for example spaces or hashes. i suppose poco has some function for that, i will take a look and try to add it when i have some time but meanwhile you can just do it manually:

http://www.w3schools.com/TAGS/ref-urlencode.asp

thanks arturo,

I tried pre encoding the hash as %23 but as the whole URL gets encoded the % then gets re-encoded so looks like %2523.

cheers

Did URL encoding ever get added to Open Frameworks somewhere? Or is there a recommended C/C++ function?

I tried using CURL easy escape, but I am still having a hard time not getting rejected by a Microsoft server.

e.g.

#include <curl/curl.h>

    CURL * curl = curl_easy_init();
    if (curl) {
        char *output = curl_easy_escape(curl, ServerSubmission.c_str(), ServerSubmission.size());
        if (output) {
            ServerSubmission = output;
            printf("Encoded: %s\n", output);
            curl_free(output);
        }
    }