As far as I can see, that is correct.
If you do the following, you can see your file echoed:
'/tmp/foo.txt' asFileReference writeStreamDo: [ :out | out << '123456' ].
ZnClient new
�� url: 'http://zn.stfx.eu/echo';
�� uploadEntityFrom: '/tmp/foo.txt';
�� post.
There is also #testUploadSmallDocument
Since the error is 401, it could be something else, no ? Maybe you cannot upload the same file twice ?
Try to inspect the request/response instance variables in the ZnClient object.
BTW, you can write
�� accept: 'application/vnd.gini.v1+json';
Sven
> On 07 Mar 2015, at 13:15, Sabine Manaa <[hidden email]> wrote:
>
> Hi Sven,
>
> I have one more question: how can I put a "--data-binary" part in the post? I tried like this below but I get a 401 Unauthorized error. I assume that my code below - the uploadEntityFrom: part - ��is wrong. The path is correct, the file is there.
>
> I want to write this in pharo:
> (Command line works)
> "curl -v -X POST --data-binary '@/users/sabine/desktop/Belege/beleg1.jpg' -H 'Accept: application/vnd.gini.v1+json' -H 'Authorization: BEARER 0ae2963-eaad-4055-a64b-8903470baa9f' 'https://api.gini.net/documents'"
>
> | path |
> path := ZnFileSystemUtils fullNameFor: 'beleg1.jpg'.
> ^ ZnClient new
> systemPolicy;
> https;
> host: 'api.gini.net';
> path: 'documents';
> headerAt: 'Accept' add: 'application/vnd.gini.v1+json';
> headerAt: 'Authorization' add: ('BEARER {1}' format: {(self getAccessToken)});
> uploadEntityFrom: path;
> post
>
> regards
> Sabine
>> If you reply to this email, your message will be added to the discussion below:> 2015-03-06 4:56 GMT+01:00 Sabine Manaa <[hidden email]>:
> Hi Sven,
>
> great - it seems to work. Thanks again!
> I have another problem now which has to be checked with gini.
> I will come back to you if there is something open.
> Will your versions be included in the configurationOf for the next versions?
>
> @Norbert: I used the curl string as a comment in a method and forgot to remove the double quotation marks in my post. :-)
>
> regards
> Sabine
>
> 2015-03-05 22:46 GMT+01:00 Sven Van Caekenberghe-2 [via Smalltalk] <[hidden email]>:
> With the following version:
>
> ===
> Name: Zodiac-Core-SvenVanCaekenberghe.38
> Author: SvenVanCaekenberghe
> Time: 5 March 2015, 10:50:20.718425 pm
> UUID: e3136feb-d3ad-4e3e-b844-464737f0b9ea
> Ancestors: Zodiac-Core-TheIntegrator.37
>
> Change the semantics of ZdcSimpleSocketStream>>#fillReadBuffer to simply return when ConnectionClosed is seen while waiting for data instead of letting the exception through
>
> Patch ZdcSecureSocketStream>>#fillBytes:startingAt:count: again by ignoring all exceptions from the SSL plugin
> ===
>
> it now works:
>
> ZnClient new
> ��https;
> ��host: 'user.gini.net';
> ��path: 'api/users';
> ��headerAt: 'Authorization' add: ('BEARER {1}' format: { #myToken });
> ��accept: ZnMimeType applicationJson;
> ��contentReader: [ :entity | NeoJSONReader fromString: entity contents ];
> ��contentWriter: [ :data | ZnEntity with: (NeoJSONWriter toString: data) type: ZnMimeType applicationJson];
> ��contents: { #email->'[hidden email]'. #password->'geheim' } asDictionary;
> ��post.
>
> ��=> a Dictionary('error'->'invalid_token' 'error_description'->'Invalid access token: myToken' )
>
> This is experimental. We'll see what the CI says. And if it behaves the same on all platforms.
>
> Sven
>
> > On 05 Mar 2015, at 19:42, Sven Van Caekenberghe <[hidden email]> wrote:
> >
> > Basically, this is how you should do it (after loading NeoJSON):
> >
> > ZnClient new
> > ��https;
> > ��host: 'user.gini.net';
> > ��path: 'api/users';
> > ��headerAt: 'Authorization' add: ('BEARER {1}' format: { #myToken });
> > ��accept: ZnMimeType applicationJson;
> > ��contentReader: [ :entity | NeoJSONReader fromString: entity contents ];
> > ��contentWriter: [ :data | ZnEntity with: (NeoJSONWriter toString: data) type: ZnMimeType applicationJson];
> > ��contents: { #email->'[hidden email]'. #password->'geheim' } asDictionary;
> > ��post.
> >
> > But I tried it and I got SSL errors, again.
> >
> > This host/server is really weird (there is no Server header so I don't know which one it is), but it says that it will close the connection, but it keeps it open.
> >
> > And again, this will probably work on Windows/Linux.
> >
> > Sven
> >
> >> On 05 Mar 2015, at 18:59, Sabine Manaa <[hidden email]> wrote:
> >>
> >> Hi ,
> >>
> >> I want to write the following command in pharo:
> >>
> >> "curl -v -X POST --data '{""email"":""[hidden email]"",
> >> ""password"":""geheim""}' -H 'Content-Type: application/json' -H 'Accept:
>
> >> application/json' -H 'Authorization: BEARER
> >> d0ae3333-eaad-4335-a64b-8903470baa9f' 'https://user.gini.net/api/users'"
> >>
> >> The following does not work, response is
> >> 415 Unsupported Media Type text/html;charset=UTF-8 2341B
> >> And I assume that it is the "--data {}" part, which is wrong.
> >>
> >> ^ZnClient new
> >> systemPolicy ;
> >> https;
> >> host: 'user.gini.net';
> >> path: 'api/users';
> >> headerAt: 'Content-Type' add: 'application/json';
> >> headerAt: 'Authorization' add: ('BEARER {1}' format: {self
> >> getAccessToken});
> >> headerAt: 'Accept' add: 'application/json';
> >> contents:'--data {"email":"[hidden email]", "password":"geheim"} ';
> >> post.
>
> >>
> >> how can I put the --data ��part into the request?
> >>
> >> Regards
> >> Sabine
> >>
> >>
> >>
> >> --
> >> View this message in context: http://forum.world.st/ZnClient-data-tp4809798.html
> >> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
> >>
> >
>
>
>
> http://forum.world.st/ZnClient-data-tp4809798p4809834.html
> To start a new topic under Pharo Smalltalk Users, email [hidden email]
> To unsubscribe from Pharo Smalltalk Users, click here.
> NAML
>
>
> View this message in context: Re: ZnClient --data {}
>
> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>
If you reply to this email, your message will be added to the discussion below:http://forum.world.st/ZnClient-data-tp4809798p4810238.htmlTo start a new topic under Pharo Smalltalk Users, email [hidden email]
To unsubscribe from Pharo Smalltalk Users, click here.
NAML