Http post: post body contains less bytes specified by the length of the content

Hello

in my application, I do a http post using this code (fieldsToSend and referentiToSend are both initialized before vector)

HttpConnection conn = null;
InputStream is = null;
OutputStream os = null;

Conn = (HttpConnection), Connector.open (Constants.Synch.URL_NOTIFY);
            
conn.setRequestMethod (HttpConnection.POST);
            
URLEncodedPostData post = new URLEncodedPostData ("UTF - 8", false);

for (int i = 0; i)< fieldstosend.size();="" ++i)="">
String name = "visited" + (i + 1);
String value = (String) fieldsToSend.elementAt (i);
post. Append (name, value);
}
            
for (int i = 0; i)< referentitosend.size();="" ++i)="">
String name = "contact" + (i + 1);
String value = (String) referentiToSend.elementAt (i);
post. Append (name, value);
}

conn.setRequestProperty ("Content-Type", post.getContentType ());
conn.setRequestProperty ("Content-Length", (New Integer (post.getBytes () .length)) m:System.NET.SocketAddress.ToString ());
            
OS = conn.openOutputStream ();
OS. Write (post. GetBytes());
OS. Flush();
            
Int State = conn.getResponseCode ();

If (status == HttpConnection.HTTP_OK) {}

do something

}

If I'm reading the server log I see this error

SRTServletReq E SRVE0133E: an error occurred during parsing of the parameters. java.io.IOException: SRVE0216E: body of the message contains less bytes specified by the length of the content

Can you tell me where is the problem?

Thanks in advance.

Kind regards

Gianni.

Apologies... The problem was on the servlet, not on the BlackBerry. I'm sorry too...

Tags: BlackBerry Developers

Similar Questions

  • The VISA read function is not read the bytes specified in the buffer zone

    I created a program that continuously acquire data of the inverter. But, the "Reading of VISA" function is not rreading all bytes of the buffer, which is a big problem because the way my work programme is it will extract the specific buffer bytes and convert these values in voltage and current values.

    I specified the number of bytes that I want to read the buffer as for example I want to read 21 bytes. But, even if there are 21 bytes in the buffer, the read function VISA read only 9 bytes. Im not using any character of endpoints so this is weird. I'm using LabVIEW 2011.

    Is attached a photo of my program and the results.

    You still have the active stop character.  You must connect up to a FAKE at the entrance of termination character activate on the Serial Port to set it up.

  • JavaScript Command Window.getComputedStyle (document.body, ': after') .getPropertyValue ('content') returns the content with quotes

    When I use in my css:
    body: after {}
    content: "mobile";
    display: none;
    }
    And by controlling javascript with the command:
    size var = window.getComputedStyle (document.body, ': after') .getPropertyValue ('content');

    I get in firefox (mac v 23.0.1) returns the '' mobile' ' string with double quotes as return and, therefore, checking if size == 'mobile' returns false. In safari, the value returned 'mobile' without the quotes. How is it?

    What you get is a string that represents what you specified in the content.

    A content specification can include other things like a counter: body: after {content: "subjects []" counter (topics) "]" ;}}

    size = window.getComputedStyle(document.body,_':after').content would give: 'subjects []' counter (topics) "].

    If you need test the exact text of the contents: size == ' 'mobile "";

  • HTTP Post documentation does not mention the forums (BUG)

    Documents of the VI of HTTP post (see here) do not mention that there are 2 instances of this VI. It contains only the help on the string instance.

    Right-click on the VI shows that it is a polymorphic VI, with a buffer (string) and the instance of the file (paths).

    Aid for these screws would normally have a ring "Instance" where you could see that there are other forums. (example)

    This absence made me several hours of debugging, because the buffer method stops playback of the chain after finding a NULL byte. (this could be a separate bug).

    In my opinion all polymorphic screws should show their terminal selector.

    Tone

    Your dear,

    I reported the problem of documentation in corrective action request # 244384. I'll have another look in the question on the search for the null byte. Thank you for bringing this place.

    Best regards

  • OutofMemoryException/EOFException when bleow data via HTTP POST

    Hello

    I got OutofMemoryException when I download data with size larger than 2 MB. I use http post by specifying

    'Content-Type', ' multipart/form-data; Boundary = boundaryvalue.

    in the header of the request.

    The stacktrace of the exception of 9000 "BOLD" is as below.

    No detail message

    net_rim_cldc (4AAABCA5)

    DataBuffer

    ensureBuffer

    0 x 3690

    net_rim_cldc (4AAABCA5)

    DataBuffer

    To write

    0x3C52

    net_rim_crypto_1-3 (4AAAC974)

    TLSOutputStream

    To write

    0x45C7

    net_rim_cldc-1 (4AAABCA5)

    DataOutputStream

    To write

    0x221D

    net_rim_os-2 (4AAAC894)

    ClientProtocol

    0x1A1D

    net_rim_os-2 (4AAAC894)

    ClientProtocol

    writeRequest

    0 x 1422

    net_rim_os-3 (4AAAC894)

    HttpProtocolBase

    transitionToState

    0x33D7

    net_rim_os-2 (4AAAC894)

    ClientProtocol

    transitionToState

    0x23D4

    net_rim_os-3 (4AAAC894)

    HttpOutputStream

    Rinse

    0x334C

    ....

    When I test Simulator 8300, I got EOFException.

    No detail message
    net_rim_os-2
    ClientProtocol
     
    0 x 1917
    net_rim_os-2
    ClientProtocol
    readResponse
    0x148A
    net_rim_os-3
    HttpProtocolBase
    transitionToState
    0 x 1613
    net_rim_os-2
    ClientProtocol
    transitionToState
    0 x 2335
    net_rim_os-3
    HttpOutputStream
    Rinse
    0x157E

    ...

    This code seems to work for the file with a size less than 2 MB.

    Any suggestions would be very appeciated.

    Thank you

    Itthipon

    I was able to replicate that when you use an OutputStream.  OutputStream to DataOutputStream switching enabled me to show 3 MB of data.  Please give that a try and making me know if you encounter other problems.

  • Encoding of the string for HTTP Post

    Hello

    I work with HTTP get and post at the moment, I have a server with a REST of apache based interface. Obtaining and displaying the data are no problem for 'normal' strings and characters, but I can't send characters like German "Umlaut" (Ä Ü Ö) or Japanese or Chinese characters. Coding for the Socket connection is UTF-8 and the command POST also contains a line of Content Type with character set UTF-8. The server expects UTF - 8, so I need my data in this encoding.

    When I send strings of InDesign now, I always get an error 'Bad Request' from my server. Looks like that the strings in ESTK is not UTF-8 - How can I create UTF-8 strings? I can't find methods of encoding conversion...

    Thank you

    Klaus

    OK, it took a while to find that - maybe someone else has the same problem and it is looking for a solution, I'll try to explain:

    I downloaded the source files for tomcat to know how tomcat with my data. I debugged deep into the code until I reached the CotoyeInputStream - here the reading of data from InDesign. And although I understood that the stream is read in the form of bytes and characters are counted. The Umlaute and other special characters are encoded as two bytes, but they are counted as a single character. For every Umlaut transferred the number of bytes is 1 higher than the number of characters.

    And at a time the flow is cut to the number of characters.

    So these are 13 bytes and 12 characters:

    {'name': 'u'}

    The byte stream is cut to 12 - last byte is lost and it will happen in my application server:

    {'name': 'u'}

    Support of closing is absent and that throws the Exception.

    My simple solution/solution: I'm adding several spaces. Tomcat is always cut the last characters, but now there are only spaces to be cut. And with spaces, it worked...

  • http post does not

    I'm setting up a http post in my Blackberry app. I have successfully implemented this in my Android app, so I know the server function find. I tried several different things, and I don't really get errors, it's just that the info on the server is not updated. I looked at this post: Http POST in BlackBerryand many others. I found them useful, but they ultimately do not solve my problem. Yet once, I get errors, but the server is not updated. Here is the code that I currently use:

            String url =http://xxxx.com/ratings/add?;deviceside=tru;
            String postStr1 =business_id=79;
            String postStr2 =rating=;
    
            HttpConnection httpConnection = (HttpConnection) Connector.open(url);
            httpConnection.setRequestMethod(HttpConnection.POST);
            httpConnection.setRequestPropertyContent-Typ,application/x-www-form-urlencode);
    
            URLEncodedPostData encPostData = new URLEncodedPostDataUTF-, false);
            encPostData.appendbusiness_i, String.valueOf(790));
            encPostData.appendratin, String.valueOf(4));
            byte[] postData = encPostData.toString().getBytesUTF-);
    
            httpConnection.setRequestPropertyContent-Lengt, String.valueOf(postData.length));
    
            OutputStream os = httpConnection.openOutputStream();
            os.write(postData);
            os.flush()
    

    All ideas

    He solved. Had to remove deviceside = true

  • HTTP POST: Returns a response of login instead of a JSON response page

    Dear all,

    I just glued a snippet of code for HTTP Post where I WRITE a message to multiple parties to the server that will
    Authentication. I expect a response the following JSON. But when I run the present I always LOGIN
    Page in HTML.

    Can someone let me know the problem in the code below...

    Thanks a ton for your help.

    Thank you
    MGR

    / public final class MyScreen extends form {}
    private RichTextField _Output;
    public MyScreen() {}
    Set the displayed title of the screen
    setTitle ("MyTitle");

    _Output = new RichTextField();
    Add (_output);
    addMenuItem (_GetDataAction);
    }
    protected _GetDataAction MenuItem = new MenuItem ("GetData", 100000, 10) {}
    public void run() {}
    String URL = "";
    ServiceRequestThread svc = new ServiceRequestThread (URL,
    (MyScreen) UiApplication.getUiApplication)
    (. getActiveScreen());
    SVC. Start();
    }
    };
    {} public void updateDestination (final String text)
    UiApplication.getUiApplication () .invokeLater (new Runnable() {}
    public void run() {}
    _Output.SetText (Text);
    }
    });
    }

    }
    class ServiceRequestThread extends Thread {}

    protected String _URL;
    protected MyScreen _Dest = null;
    protected URLEncodedPostData _PostData = null;
    StringBuffer writer = new StringBuffer();

    {} public void setPOSTData (URLEncodedPostData data)
    _PostData = data;
    }

    public ServiceRequestThread (String URL, display MyScreen) {}
    Super();
    Dest = screen;
    _URL = URL;
    }

    public void run() {}
      
    Try
    {
    String limit = "SATBA";
    String twoHyphens = "-";
    "{String data1 = '{\"IMPORTING\': {\"IN_COUNTRY_CODE\":\"US\'}} ';
    String CRLF = "\r\n";
    Byte [] encrypted = Base64OutputStream.encode ("Userassword".getBytes (), 0, "userassword".length (), false, false);
           
    "Preparing the post data.
         
    Writer.Append ("-" + boundary) .append (CRLF);
    Writer.Append ("Content-Disposition: form-data;") Name = ()-"param\" ")." Append
    CRLF);
    Writer.Append ("Content-Type: text/json;") charset ="+" UTF - 8 ") .append (CRLF);
    Writer.Append ("Content-Transfer-Encoding: 8 bit") .append (CRLF);
    Writer.Append ("request - ID:Abcd123456"). Append (CRLF);
    Writer.Append("request-type:rfc_json"). Append (CRLF);
    Writer.Append ("Function:00163E0136C01EE0AE8B059433A71727")
    . Append (CRLF);
    Writer.Append (CRLF);
    Writer.Append (data1). Append (CRLF);
    Writer.Append("--" + Boundary + "--"). Append (CRLF);
    String string = new String (writer);
                           
    HttpConnection conn1 = (HttpConnection) Connector.open (_URL, Connector.READ_WRITE);
    conn1.setRequestMethod (HttpConnection.post);
    conn1.setRequestProperty ("authorization", "Basic" + new String (encoded));
    conn1.setRequestProperty ("Content-Type", "multipart/mixed; limit =" + limit);
     
    OutputStreamWriter osw is new OutputStreamWriter (conn1.openOutputStream (), 'UTF-8');.
    OSW. Write (String);
    OSW. Flush();
    OSW. Close();
       
    int responseCode = conn1.getResponseCode ();
    If (responseCode == HttpConnection.HTTP_OK) {}
    Given InputStream = conn1.openInputStream ();
    Gross StringBuffer = new StringBuffer();
    Byte [] buf = new byte [4096];
    not read int = data.read (buf);
    While (not read > 0) {}
    RAW. Append (new String (buf, 0, read));
    not read = data.read (buf);
    }
    _Dest.updateDestination (RAW. ToString());
    } else {}
    _Dest.updateDestination ("responseCode ="
    + Integer.toString (responseCode));
    }
    }
    catch (IOException e)
    {
    e.printStackTrace ();
    _Dest.updateDestination("exception:"+e.ToString());)
    }
    }

    }

    Hello

    Thank you very much code was perfectly fine and she is on property rim.public of the file where the

    application.handler.http.AuthenticationSupport has been set to true, and because of this in the fact that he wasn't loggging.

    Now I put it to false, and the correct answer came.

    Thank you very much.

    Best regards

    MGR

  • HTTPS post problem

    Hey guys I have problems to send data to a back-end server. I am trying to send the data using the http post method. Now, the connection works fine, her gives me a 200 OK response, after which I try to write data. But unfortunately the server receives all the data. My code is as follows:

    String toSend = "write it to the server";

    Byte [] postData = toSend.getBytes ();

    c = (HttpsConnection) Connector.open ("https://myurl;deviceside=true");

    c.setRequestProperty ("Content-Type", "application/x-www-formulaires-urlencoded");
    c.setRequestProperty ("Content-Language", "en-US");
    c.setRequestProperty ("Content-Length", String.valueOf (postData.length));
    c.setRequestMethod (HttpConnection.POST);
    int responseCode = c.getResponseCode ();

    dStr = new DataOutputStream (c.openOutputStream ());
    dStr.write (postData);

    dStr.flush ();
    dStr.close ();

    c.Close ();

    Am I missing something here? Help would be greatly appreciated.

    Thank you

    David

    Get rid of the flush.

    do the "getResponse" before closing the stream. This void anyway.

    Like this:

    Set the properties of the application
    setRequestProperties (m_httpConnection);
                           
    dataOutputStream = m_httpConnection.openDataOutputStream ();
    writeRequestPayload (dataOutputStream);
       
    get and store the response for this request code
    m_responseCode = m_httpConnection.getResponseCode ();

    Now you can close the stream

  • Failure of HTTP post when connecting via SIP

    Hi all

    I'm doing HTTP post, but I get corrupted in the response data.

    This problem only occurs on the device (4.5) and only if you use the SIP configuration

    (the problem does not when you use a device via Wifi 4.6)

    Here is my code:

    HttpConnection connection = (HttpConnection)Connector.open(url + ";deviceside=false");connection.setRequestProperty("x-rim-transcode-content", "*/*");connection.setRequestMethod(HttpConnection.POST);connection.setRequestProperty("Content-Type","multipart/form-data; boundary=@---------------------------123");connection.setRequestProperty(HttpProtocolConstants.HEADER_CONTENT_LENGTH, String.valueOf(data.length));      OutputStream os = connection.openOutputStream();os.write(data);
    
    if (connection.getResponseCode()==HttpConnection.HTTP_OK){   StringBuffer result = new StringBuffer();   byte[] buffer = new byte[2000];   int i = 0;         DataInputStream in = connection.openDataInputStream();
    
       while ((i = in.read(buffer)) != -1){      result.append(new String(buffer, 0, i,"ISO-8859-1"));   }}
    

    Does someone know what I'm doing wrong here?

    (BTW, the system cut the suffix HTTP "ConnectionType =" which should be equal to "mds" + "»' + 'public')

    I guess that your assumption that the "transcode-including" in the request header method caused the problem was correct.

    I changed the method request header, it shows the HttpConnection API:

    ...
    
    // Set the request method and headers
    c.setRequestMethod(HttpConnection.POST);
    c.setRequestProperty("If-Modified-Since","29 Oct 1999 19:43:31 GMT");
    c.setRequestProperty("User-Agent","Profile/MIDP-2.0 Configuration/CLDC-1.0");
    c.setRequestProperty("Content-Language", "en-US");
    
    ...
    

    and the problem has been corrected

  • HTTPS post doesn't work on device but in the Simulator

    You are looking for suggestions on why a https post works all the time on a simulator, but what installation on the device and test it works the first time but the time the rest of the time after that.

    Here is most of the code, this came from another sample written and posted on BB forums.

    I tried with the removed ConnectionTimeout, and with it the value of different values.

    As mentioned it works the first two times, maybe even just the first time and not after once using the real device.

    Any thoughts would be greatly appreciated.

    private String of doTransaction (postString String)]
    {
    String [] ccResponse;
    HttpsConnection SC;
    OutputStream outStream = null;
    String url = "https://url/; ConnectionTimeout = 60000 "; just removed the url to view the code

    Try
    {
    HC = (HttpsConnection)
    Connector.Open (url, Connector.READ_WRITE); Set the POST request method
    hc.setRequestMethod (HttpsConnection.POST);
    hc.setRequestProperty ("Content-Type", "application/x-www-formulaires-urlencoded");
    hc.setRequestProperty ("Content-Length", Integer.toString (postString.length ()));

    outStream = hc.openDataOutputStream ();
    outStream.write (postString.getBytes ());
    outStream.flush ();
    outStream.close ();
    Get the answer back to the servlet
                
    hc.getResponseCode ();
                
                
    InputStream is = hc.openDataInputStream ();
    LineReader lr = new LineReader (is);

    While (true)

    {
    Try
    {
    Byte [] arr = lr.readLine ();
    String $thisline = new String (arr);
    Dialog.Inform ($thisline);
    If (! thisLine.endsWith ("="))
    {
    Dialog.Inform ("splitting");
    If ends with =, not split
    String [] splitLineResponse;
    String separator = '=';
    splitLineResponse = split (new String (arr), separator);

    String responseItem = splitLineResponse [0];
    String responseValue = splitLineResponse [1];

    There are a lot of topics split here.

    }
                        
                            
    }
    catch (e EOFException)
    {
    Reached end of file
    Dialog.Inform ("expressions of folklore Exception" + e.getMessage ());
    break;
    }
    }
    HC. Close();
                
    }
    catch (Exception ex)
    {
    Transaction time-out
    Dialog.Alert ("TransException" + ex.getMessage ());

    }
    postData = null;
    Return ccResponse;
            
    }

    How is it a failure?

    My guess is that the problem is that the unit does not have a connection. Without any connection parameter, it will connect via MDS if the device is a network of MDS; If not, he'll probably try direct TCP. In the latter case, it will fail unless the APN settings are set correctly. The carrier may also have something to say about it.

    I suggest you read the post-it by Peter Strange and also check out the videos of transport network that RIM posted. They provide a lot of information on how to establish connections.

  • Sending a file via http POST

    I can't find out how to send a pdf file to the REST API /transientDocuments. In what format is it in? What should I include in the header and the body? I can't find a clear answer.

    I thought about it! I'll post the solution for others to research.

    To send a PDF on HTTP Announces, I put the header to have the access token. However, I put the body is

    "- 011000010111000001101001\r\nContent-Disposition: form-data; name = \ 'file '; "filename = ${fileBase64} \r\nContent-Type: application/pdf\r\n\r\n\r\n - 011000010111000001101001-

    Where the variable "fileBase64" is my file that I converted to a string in Base64.

    I also put the Content-Type to be "multipart/form-data; Boundary = - 011000010111000001101001"

    I was able to understand using app postman to observe what has been sent between the Adobe server and the application. Postman also had examples of code in Java (and many other languages) which has proved invaluable when I was trying to find a solution.

    Hope this helps someone else.

  • Send a PDF form via HTTP Post: Newbie Questions

    Hello

    I am completely new to PDF forms, so I was finding the documentation and the overwhelming options.

    I'm hoping to get directed to the documentation/tutorials/examples that I really need.

    I want to build a 'proof of concept' for my boss.  I would like to include a screen in our webapp Java (JSP & spring) where either a PDF form is incorporated or is accessible via a link.

    I have

    • Standard Adobe Acrobat Distiller X license
    • Adobe Acrobat X Standard
    • Microsoft Office 2010

    I made a little, the form of Microsoft Word 3 field.  I then he converted via distill into a PDF form.

    I then found this document on how to submit a PDF form to a component side Server:

    http://acrobatusers.com/tutorials/form-submit-e-mail-Demystified

    My big problem with this document, is not an example, nor an example of what is happening in an HTML page complete.   Because I I have a few questions:

    1. I see such an example somewhere?
    2. The result of the call to the javascript function doc. SubmitForm (urlToMyServerSideComponent) go in a script tag on the HTML page as other javascripts?
    3. Can I submit the function from an HTML button run or I put a button 'send' the PDF form?
    4. Do I need Adobe LiveCycle to create a PDF form with a button "submit"?  Free versions?
    5. Can I send via HTTP POST?
    6. Do I need Adobe LiveCycle to create a PDF form with a digital signature?
    7. Is there a document/tutorial that fits where I want to? (Please no books, I am tyring to show to my boss that this is something which can be done in a reasonable amount of time, no time to get and go through a book).

    Thanks in advance for things which make me pointed in the right direction

    Steve

    This seems to imply that I can do a such acroform without using an application or can I use an application with an option to write code by hand.  Am I wrong?  If yes could tell me on the document from the beginner to learn how to do this?    I have acrobat, but I don't have the 'send to server' option in the menu to distribute.

    No, you would use Acrobat to add the button and configure. As said earier, you want not to use distribute the form for this type of shape. Simply add a button on one of the pages of the PDF and give a mouse action upward to "submit a form":

    The video tutorial contains more information on the treatment of the submission on the server. Again, do not use the option to distribute the form in Acrobat.

  • Authentication http post VI errors

    I am trying to query a web service to third parties non-LabVIEW LabVIEW 2014, using HTTP POST. Using another utility (restclient-ui-3.5-jar-with-dependencies.jar), I checked that URL, user name, password, and query syntax are accurate and are running on the same computer where my VI fails. I must be missing something when translating that to LV, because I get the error 401 (full authentication is required) and also 415 (unsupported media type).

    I have attached the configuration file used for the other utility, my VI and an overview of the response from the Web service for the post of the VI.  I had to make all anonymous, hide url, user, etc., so it can not really be tested as it is, unfortunately. I tried with & without additional authentication header, with & without Config SSL, etc. You can see the different options on the VI.

    Any suggestions?

    Thank you very much.

    Solved my problem with a combination of different required headers and syntax fixes.

  • Getting 7 error with the HTTP POST vi method when deplyed ISO crio as executable... urgent!

    Hi all

    I have an application where I can access the net server point of LabVIEW via the HTTP protocol to send the data. My application works fine when I run it on XP, and also sometimes on cRIO. I'm writing and reading files to store and read data from the server.

    When I do my application executable and deployed on cRIO I am constantly 7 error that says "Error in the node library function to call at the POST vi LabVIEWHTTPCLIENT".

    After getting this error if I try to run the my new project the crio (not through exe) I keep getting the same error. This means once the executable file is deployed on the crio, I get the error in my project application which was working fine before you deploy the executable file.

    7 occurs very frequently. and I am unable to find the reason. I gave all the paths in the constant form located on crio and files accessible also when the application is run.

    Is someone can you please help me what this error 7?

    as a result, that it is bound to the HTTP POST vi method...

    How can it be fix?

    Its quite urgent...

    Thanks in advance.

    Solution is provided by the NOR... Vi POST method missing two files that need to be there in the startup of the CRIO.insted folder there is in the system folder. That's why when running the exe that the startup on crio application it gives error as the files are not there. The fix for this HTTP POST vi update isn't out yet EITHER.

Maybe you are looking for

  • Photosmart all-in-one c4183: partial printing

    Print a Cape... leaving aside the message and prints the title once more, sometimes more prints a document partially

  • Satellite C75-A-145 starts

    My tosh Saturday did not in service since yesterday. First of all, I left my laptop on while a few minutes and when I got home the only way to wake from sleep mode was to unplug the power cable. Then after and hour it did it again but this time he ha

  • Qosmio F50-108 - monitor flicker

    Hello! I have a Qosmio F50-108, and recently, I noticed that the screen flickers. It looks like a neon sign that is on out. Fortunately, which happened yet, but I'm really afraid that my monitor can suddenly go blank one day. No matter which option t

  • Impossible to install the client software to scan on Photosmart 3310

    Although I can print, I can't use the scanner. I tried to install the software that has failed every time, even if I usesd misconfig to deactivate the software startup and disabled my antivirus (bitdefendr) and firewall during installation. The softw

  • MultiSelect FilePicker

    Is it possible to give the user the ability to select multiple files, when the FilePicker appears - if so how? I can show a FilePicker and I listen for the selection of a single file, so lack me a way to tell the FilePicker to enable multiple selecti