Hi Don, Although this should work in Fedora 3.3, the REST API in Fedora 3.1 didn't support a mimeType parameter...it always used the one that was in the request header.
Compare: http://fedora-commons.org/documentation/3.1/Fedora%20REST%20API.html to: http://www.fedora-commons.org/confluence/display/FCR30/REST+API#RESTAPI-addDatastream If you can't upgrade to 3.3, you might try avoiding libcurl and do it directly: http://netevil.org/blog/2006/nov/http-post-from-php-without-curl ...not sure how relevant that is these days, and I'm far from php-savvy, but it may be worth a shot. - Chris On Wed, Mar 3, 2010 at 2:27 PM, Don Gourley <[email protected]> wrote: > Thanks Jason, I have tried that and the datastreamVersion I got was: > > <foxml:datastreamVersion ID="dctst.4" LABEL="Test Modify" > CREATED="2010-03-01T20:14:28.119Z" > MIMETYPE="text/xml;boundary=----------------------------48598ac9f1c5"> > > and I also got the boundary and some header stuff mixed in to the top > of the datastream. So It looks like it is messing up the multipart > content-type rather than assigning it to the XML part of the request > content. This post is the best explanation of how PHP/libcurl is > broken that I've found: > > http://osdir.com/ml/web.curl.php/2007-12/msg00033.html > > I'm new to PHP, and FedoraCommons, but it seems simpler to use the > mimeType parameter if I can figure if/how it works. > > -Don > > On 3 March 2010 14:06, Jason Nugent <[email protected]> wrote: >> hi Don, >> >> Have you tried using the PHP libcurl function curl_setopt() to set the >> MIME type for your PHP curl call? >> >> $header = array(); >> $header[] = "Content-Type: text/html"; >> >> ... other additions to $header, and then: >> >> curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); >> >> before you do your curl_exec() call. >> >> Regards, >> >> Jason >> >> On 3/3/10 2:49 PM, Don Gourley wrote: >>> When I add or modify a managed XML datastream using the REST API, I am >>> unable to get the correct mime-type on the datastreamVersion. For >>> example, >>> >>> curl -i -XPUT >>> "https://example.com:8443/fedora/objects/demo:29/datastreams/dctst?mimeType=text/xml&controlGroup=M&dsLabel=Test+mimeType" >>> --data-binary @dc.xml -k -u fedoraAdmin:****** >>> >>> creates a datastreamVersion like this: >>> >>> <foxml:datastreamVersion ID="dctst.5" LABEL="Test mimeType" >>> CREATED="2010-03-03T18:10:23.286Z" >>> MIMETYPE="application/x-www-form-urlencoded"> >>> <foxml:contentLocation TYPE="INTERNAL_ID" REF="demo:29+dctst+dctst.5"/> >>> </foxml:datastreamVersion> >>> >>> (I've tried it url-encoded with the mimeType=text%2Fxml also) >>> >>> I know that I can add -H "Content-Type: text/xml" to the cURL command >>> and get the right mime-type in the datastreamVersion, but the problem >>> is that I am trying to write client application using PHP and libcurl >>> and adding a content-type request header doesn't work with that mix. >>> And the mimeType parameter is supposed to override the request header >>> anyway, or am I not using it correctly? >>> >>> I am trying to update a Fedora 3.1 repository. >>> >>> thanks, >>> -Don >>> >>> ------------------------------------------------------------------------------ >>> Download Intel® Parallel Studio Eval >>> Try the new software tools for yourself. Speed compiling, find bugs >>> proactively, and fine-tune applications for parallel performance. >>> See why Intel Parallel Studio got high marks during beta. >>> http://p.sf.net/sfu/intel-sw-dev >>> _______________________________________________ >>> Fedora-commons-users mailing list >>> [email protected] >>> https://lists.sourceforge.net/lists/listinfo/fedora-commons-users >>> >> >> -- >> Jason Nugent >> Systems Programmer/Database Developer >> Electronic Text Centre >> University of New Brunswick >> [email protected] >> (506) 447 3177 >> > > > > -- > Don Gourley, IT Manager > Digital Humanities Observatory > ~a project of the Royal Irish Academy~ > +353 1 234 2446 -- [email protected] > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > Fedora-commons-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/fedora-commons-users > ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Fedora-commons-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/fedora-commons-users
