You are viewing a plain text version of this content. The canonical link for it is here.
Posted to httpclient-users@hc.apache.org by ghanchakkar <ma...@yahoo.com> on 2008/03/17 19:30:22 UTC
how 2 supress contentType when using multipartentity
Please help me.
I building a bot and trying to upload file along with form fields. when
compare the request generated by httpclient with that of microsoft browser,
I notice that httpclient is having following format after the header.
-------------------------------boundaryid
Content-Disposition: form-data; name="fieldname1"
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
value1
-------------------------------boundaryid
Content-Disposition: form-data; name="fieldname2"
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
value2
-------------------------------boundaryid
:
:
But internet explorer generates request in following format
-------------------------------boundaryid
Content-Disposition: form-data; name="fieldname1"
value1
-------------------------------boundaryid
Content-Disposition: form-data; name="fieldname2"
value2
-------------------------------boundaryid
:
:
Notice the Content-Type and Content-Transfer-Encoding fields are populated
by HttpClient.
The webserver is not expecting these two fields and therefore throwing me an
error as it is not able to trace the value for the required formfield (I
guess it is poorly written server)
How do I get rid of these extra two values while using httpclient
multipartentity. please see snippet of my code below
Part[] parts = new Part[files.length + nvPairs.length];
//setup form fields
for(int i = 0 ; i < nvPairs.length ; i++){
parts[i] = new StringPart(nvPairs[i].getName(),
nvPairs[i].getValue(),CHAR_SET);
}
//setup files
for(int i = nvPairs.length, j=0 ; j < files.length ; j++,i++){
File targetFile = new File(files[j].getValue());
parts[i] = new FilePart(files[j].getValue(), targetFile);
}
post.setRequestEntity(new MultipartRequestEntity(parts, post.getParams()));
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
statusCode = httpClient.executeMethod(post);
Please help ASAP.
Thanks in advance.
--
View this message in context: http://www.nabble.com/how-2-supress-contentType-when-using-multipartentity-tp16098366p16098366.html
Sent from the HttpClient-User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org
Re: how 2 supress contentType when using multipartentity
Posted by ghanchakkar <ma...@yahoo.com>.
Thanks Olegk.
In order to override the values I have derived my own class from file
FilePart and StringPart. I could not find any other way as these members are
private in FilePart and StringPart classes
Thanks for help.
olegk wrote:
>
>
> On Mon, 2008-03-17 at 11:30 -0700, ghanchakkar wrote:
>> Please help me.
>> I building a bot and trying to upload file along with form fields. when
>> compare the request generated by httpclient with that of microsoft
>> browser,
>> I notice that httpclient is having following format after the header.
>> -------------------------------boundaryid
>> Content-Disposition: form-data; name="fieldname1"
>> Content-Type: text/plain; charset=UTF-8
>> Content-Transfer-Encoding: 8bit
>>
>> value1
>> -------------------------------boundaryid
>> Content-Disposition: form-data; name="fieldname2"
>> Content-Type: text/plain; charset=UTF-8
>> Content-Transfer-Encoding: 8bit
>>
>> value2
>> -------------------------------boundaryid
>> :
>> :
>>
>> But internet explorer generates request in following format
>> -------------------------------boundaryid
>> Content-Disposition: form-data; name="fieldname1"
>>
>> value1
>> -------------------------------boundaryid
>> Content-Disposition: form-data; name="fieldname2"
>>
>> value2
>> -------------------------------boundaryid
>> :
>> :
>>
>> Notice the Content-Type and Content-Transfer-Encoding fields are
>> populated
>> by HttpClient.
>> The webserver is not expecting these two fields
>
> Then the webserver is buggy.
>
>> and therefore throwing me an
>> error as it is not able to trace the value for the required formfield (I
>> guess it is poorly written server)
>>
>> How do I get rid of these extra two values while using httpclient
>> multipartentity.
>
> Set them to null.
>
> Hope this helps.
>
> Oleg
>
>
>
>> please see snippet of my code below
>>
>> Part[] parts = new Part[files.length + nvPairs.length];
>>
>> //setup form fields
>> for(int i = 0 ; i < nvPairs.length ; i++){
>> parts[i] = new StringPart(nvPairs[i].getName(),
>> nvPairs[i].getValue(),CHAR_SET);
>> }
>> //setup files
>> for(int i = nvPairs.length, j=0 ; j < files.length ; j++,i++){
>> File targetFile = new File(files[j].getValue());
>> parts[i] = new FilePart(files[j].getValue(), targetFile);
>> }
>>
>> post.setRequestEntity(new MultipartRequestEntity(parts,
>> post.getParams()));
>>
>> httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
>>
>> statusCode = httpClient.executeMethod(post);
>>
>>
>>
>> Please help ASAP.
>>
>> Thanks in advance.
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
> For additional commands, e-mail: httpclient-users-help@hc.apache.org
>
>
>
--
View this message in context: http://www.nabble.com/how-2-supress-contentType-when-using-multipartentity-tp16098366p16135528.html
Sent from the HttpClient-User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org
Re: how 2 supress contentType when using multipartentity
Posted by Oleg Kalnichevski <ol...@apache.org>.
On Mon, 2008-03-17 at 11:30 -0700, ghanchakkar wrote:
> Please help me.
> I building a bot and trying to upload file along with form fields. when
> compare the request generated by httpclient with that of microsoft browser,
> I notice that httpclient is having following format after the header.
> -------------------------------boundaryid
> Content-Disposition: form-data; name="fieldname1"
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
>
> value1
> -------------------------------boundaryid
> Content-Disposition: form-data; name="fieldname2"
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
>
> value2
> -------------------------------boundaryid
> :
> :
>
> But internet explorer generates request in following format
> -------------------------------boundaryid
> Content-Disposition: form-data; name="fieldname1"
>
> value1
> -------------------------------boundaryid
> Content-Disposition: form-data; name="fieldname2"
>
> value2
> -------------------------------boundaryid
> :
> :
>
> Notice the Content-Type and Content-Transfer-Encoding fields are populated
> by HttpClient.
> The webserver is not expecting these two fields
Then the webserver is buggy.
> and therefore throwing me an
> error as it is not able to trace the value for the required formfield (I
> guess it is poorly written server)
>
> How do I get rid of these extra two values while using httpclient
> multipartentity.
Set them to null.
Hope this helps.
Oleg
> please see snippet of my code below
>
> Part[] parts = new Part[files.length + nvPairs.length];
>
> //setup form fields
> for(int i = 0 ; i < nvPairs.length ; i++){
> parts[i] = new StringPart(nvPairs[i].getName(),
> nvPairs[i].getValue(),CHAR_SET);
> }
> //setup files
> for(int i = nvPairs.length, j=0 ; j < files.length ; j++,i++){
> File targetFile = new File(files[j].getValue());
> parts[i] = new FilePart(files[j].getValue(), targetFile);
> }
>
> post.setRequestEntity(new MultipartRequestEntity(parts, post.getParams()));
>
> httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
>
> statusCode = httpClient.executeMethod(post);
>
>
>
> Please help ASAP.
>
> Thanks in advance.
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org