0

我没有收到任何错误,但我的代码没有将任何新数据保存到文本文件中,这是我的代码:

public void saveToLeaderboard() throws IOException {
        String toSave = "Random info I want to save";
        HttpConnection connection = null;

        connection = (HttpConnection) Connector.open("EXTERNAL URL", Connector.READ_WRITE, true);
        connection.setRequestMethod(HttpConnection.POST);

        DataOutputStream out = new DataOutputStream(connection.openDataOutputStream());
        out.writeUTF(toSave);        

        out.flush();
        connection.close();
    }

我究竟做错了什么?

4

4 回答 4

0

我在您的代码中看不到任何 FileOutputStream。DataOutputStream 应该如何写入文件?

于 2012-06-20T10:36:06.887 回答
0

要真正触发 HTTP 请求,您需要获取有关 HTTP 响应的任何信息,例如使用URLConnection.getInputStream()or的响应正文URLConnection.getResposeCode()等。

有关更多详细信息,请参阅HTTP 请求的工作原理

于 2012-06-20T10:37:40.003 回答
0

一天结束时我自己的解决方案:

我创建了一个服务器端文件(在我的情况下它是一个 .Net 文件 [.aspx]),我设置我的外部 url 来调用我的 .Net 页面,其中包含我需要的数据的 url 变量。

并使用服务器代码(在我的情况下为 C#)做了一个基本的保存到 txt 文件。

public void saveToLeaderboard() throws IOException {
        String toSave = "Data to save";
        InputStream inputStream = null;
        HttpConnection connection = (HttpConnection) Connector.open("External Url" + "?info=" + toSave, Connector.READ_WRITE, true);
        connection.setRequestMethod(HttpConnection.POST);
        inputStream = connection.openInputStream();
        inputStream.close();
        connection.close();
    }
于 2012-06-20T12:00:39.247 回答
0

最好尝试以下代码片段

public void saveToLeaderboard() {

    String toSave = "Random info I want to save";
    HttpConnection connection = null;
    int response_code=HttpConnection.HTTP_OK-1;
    FileConnection fc=null;
    DataOutputStream dos=null;
    DataOutputStream out
    InputStream dis=null; 
    try
    {    
    connection = (HttpConnection) Connector.open("EXTERNAL URL");
    connection.setRequestMethod(HttpConnection.POST);

     out= connection.openDataOutputStream();
    out.writeUTF(toSave);        

    out.flush();
    response_code=connection.getResponseCode();

    if(response_code==HttpConnection.HTTP_OK)
    {
       dis=connection.openDataInputStream();
       int ch;

       fc=(FileConnection)Connector.open(path,Connector.READ_WRITE); //path is a path of the file to be saved 
       fos=fc.openDataOutputStream(); byte temp; while((ch=dis.read()) !=-1) 
       { 
           temp=(byte)ch; fos.write(temp); 
       } 
       fos.flush(); 
     } 
      else 
       { //Status code not ok }

    }
    catch(ConnectionNotFoundException cnex){//Connection not found} 
    catch(IOException cnex){//ioe exception} 
    catch(Exception cnex){//exception} 


    if(out!=null)
    {
       try{
           out.close();
       }
       catch(Exception cnex){//exception} 
    }  
    if(dis!=null)
    {
       try{
           dis.close();
       }
       catch(Exception cnex){//exception} 
    }  
    if(connection!=null)
    {
       try{
           connection.close();
       }
       catch(Exception cnex){//exception} 
    }  
   if(fos!=null)
    {
       try{
           fos.close();
       }
       catch(Exception cnex){//exception} 
    }  
于 2012-06-25T09:43:49.670 回答