Skip to content

Commit 16b04cd

Browse files
tomas-sexenianiroqueta
authored andcommitted
Handle boundaries in multipart request (#940)
* Remove extra line break * Handle boundaries in multipart request * Handle boundaries in multipart request ---------
1 parent 2e6155e commit 16b04cd

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

common/src/main/java/com/genexus/internet/GXHttpClient.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -563,15 +563,22 @@ protected String setPathUrl(String url) {
563563
return url;
564564
}
565565

566+
boolean firstMultiPart;
566567
@SuppressWarnings("unchecked")
567568
protected byte[] getData()
568569
{
569570
byte[] out = new byte[0];
570571

572+
firstMultiPart = false;
573+
int variablesCount = getVariablesToSend().size();
574+
int count = 1;
571575
for (Object key: getVariablesToSend().keySet())
572576
{
577+
if (count == variablesCount)
578+
firstMultiPart = true;
573579
String value = getMultipartTemplate().getFormDataTemplate((String)key, (String)getVariablesToSend().get(key));
574580
getContentToSend().add(0, value); //Variables al principio
581+
count++;
575582
}
576583

577584
for (int idx = 0; idx < getContentToSend().size(); idx++)
@@ -787,7 +794,10 @@ String getHeaderTemplate(String name, String fileName, String mimeType){
787794
}
788795
String getFormDataTemplate(String varName, String value){
789796
String contentType = getContentTypeFromString(value);
790-
return "\r\n--" + boundary + "\r\nContent-Disposition: form-data; name=\"" + varName + "\";\r\n" + ((contentType != null)? "Content-Type: " + contentType + "\r\n" : "") + "\r\n" + value;
797+
String beginformDataTemplate = "\r\n--";
798+
if (firstMultiPart)
799+
beginformDataTemplate = "--";
800+
return beginformDataTemplate + boundary + "\r\nContent-Disposition: form-data; name=\"" + varName + "\"\r\n" + ((contentType != null)? "Content-Type: " + contentType + "\r\n" : "") + "\r\n" + value;
791801
}
792802

793803
private String getContentTypeFromString(String value){

0 commit comments

Comments
 (0)