delphi - blogger via idHTTP : error 400 bad request -
delphi - blogger via idHTTP : error 400 bad request -
i'm trying post blogger using idhttp component, however, i'm getting "http/1.0 400 bad request" error.
procedure tform1.button1click(sender: tobject); var request,response,req : tstringlist; auth,blogid : string; begin blogid := '00000000000000000000000'; request := tstringlist.create; response := tstringlist.create; req := tstringlist.create; idhttp1.request.connection := 'keep-alive'; idhttp1.request.contenttype := 'application/x-www-form-urlencoded'; idssliohandlersocket1.ssloptions.method := sslvsslv23; request.clear(); request.values['accounttype'] := 'google'; request.values['email'] := 'xxx@gmail.com'; request.values['passwd'] := 'yyy'; request.values['service'] := 'blogger'; response.text :=idhttp1.post('https://www.google.com/accounts/clientlogin',request); auth := response.values['auth']; //working req.clear(); req.text := memo2.lines.text; //put entry request var idhttp1.request.customheaders.clear(); idhttp1.request.customheaders.add('gdata-version: 2'); //idhttp1.request.customheaders.add('authorization: googlelogin auth='+auth); idhttp1.request.customheaders.values['authorization'] := 'googlelogin auth = '+auth; idhttp1.request.contenttype := 'application/atom+xml'; memo1.text := idhttp1.post('https://www.blogger.com/feeds/' + blogid + '/posts/default', req); // got "http/1.0 400 bad request" error right here. end;
gor error on
memo1.text := idhttp1.post('https://www.blogger.com/feeds/' + blogid + '/posts/default', req);
does know i'm doing wrong?
any help appreciated. give thanks you!
you posting xml info using tstringlist
. though not setting request.contenttype
application/x-www-form-urlencoded
, posting tstrings
object encode info if did. why server complaining, because not receieve intended xml correctly. post xml data, need utilize tstream
instead, eg:
procedure tform1.button1click(sender: tobject); var request, response : tstringlist; req : tstream; auth, blogid : string; begin blogid := '00000000000000000000000'; idhttp1.request.connection := 'keep-alive'; idssliohandlersocket1.ssloptions.method := sslvsslv23; request := tstringlist.create; seek response := tstringlist.create; seek request.values['accounttype'] := 'google'; request.values['email'] := 'xxx@gmail.com'; request.values['passwd'] := 'yyy'; request.values['service'] := 'blogger'; idhttp1.request.contenttype := 'application/x-www-form-urlencoded'; response.text := idhttp1.post('https://www.google.com/accounts/clientlogin', request); auth := response.values['auth']; response.free; end; request.free; end; req := tmemorystream.create; seek memo2.lines.savetostream(req); req.position := 0; idhttp1.request.customheaders.clear; idhttp1.request.customheaders.values['gdata-version'] := '2'; idhttp1.request.customheaders.values['authorization'] := 'googlelogin auth = ' + auth; idhttp1.request.contenttype := 'application/atom+xml'; memo1.text := idhttp1.post('https://www.blogger.com/feeds/' + blogid + '/posts/default', req); req.free; end; end;
delphi api delphi-7 indy blogger
Comments
Post a Comment