2012-03-30 395 views
0

我一直在寫很久的Java Rest應用程序,我想用Post方法發送用戶名和文件上下文。從兩個post方法接收字符串 - Java Rest

我在客戶端的代碼的兩種方法:

public void postUser(String user) 

public void postFile(File myFile) 

這兩種方法發送的字符串。

我的服務器的POST方法,從postUser方法得到的字符串:

@Post          
public void userPost(String name) { 
User.getInstance().addUser(name); 
} 

我希望收到postFile方法字符串,並將其保存到不同勢varaible比userPost方法。什麼是最好的方式來做到這一點?

回答

1

我理解正確嗎?要調用類似...

postUser(user); 
postFile(myFile); 

,並在客戶端,來處理一些狀態的方式在兩個不同的請求(接收方應該知道)。

@Post          
public void userPost(String name) { 
User.getInstance().addUser(name); 
} 

@Post          
public void filePost(File file) { 
//processing the file, ONLY IF the userPost method is already invoked 
} 

相反,您可以將兩個請求封裝在一起(一個請求帶有兩個參數)。喜歡的東西

postUserFile(user,file); 

而且在請求reciever ...

@Post          
public void nameFilePost(String name, File file) { 
    userPost(name); 
    filePost(file) 
} 

我不認識你正在使用的框架,但在JAX-RS的方法看起來是這樣的

@PATH("/yourPath/") 
public class YourClassNameHere{ 

@POST          
public void nameFilePost(@QueryParam("name") String name, @QueryParam("file") File file) { 
    userPost(name); 
    filePost(file) 
    } 
} 

最後一件事:不要使用單例,它們是全局變量,因此不好。 Why global variables are bad.

+0

感謝您的回覆。但是,我想讓這兩個方法獨立,因爲我不會在同一時間發送這兩個數據(比用戶名更頻繁的文件)。我使用Restlet作爲我的框架 – ruhungry 2012-03-30 13:43:00

+1

好吧,我明白了。查閱這篇文章http://blog.ianbicking.org/rest-in-more-than-one-request.html,你可以閱讀更多關於有狀態REST服務的一般信息。 – fiction 2012-03-30 13:49:43