2014-12-06 27 views
0

發送一個URL POST並在整個BufferredReader中得到答案,響應以ASCII格式發送。傳入的字符串如何分解並只使用我需要的字符串?在Java中選擇ASCII碼

params.put("ssl_result_format", "ASCII"); 

    BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8")); 
    String line; 
    Receipt pp = new Receipt(); 
    pp.setVisible(true); 
    while ((line = in.readLine()) != null) {  
    Receipt.receText.append(line + "\n"); 
    System.out.println(line); 

這是怎麼顯示:

ssl_card_number=50**********3003 
ssl_exp_date=1215 
ssl_amount=12.00 
ssl_invoice_number= 
ssl_departure_date= 
ssl_completion_date= 
ssl_issue_points= 
ssl_promo_code= 
ssl_enrollment= 
ssl_result=0 
ssl_result_message=APPROVAL 
ssl_txn_id=051214A15-6E33E984-7C6B-466D-B38C-83F24BDAC631 ETC...... 

編輯:我這表面處理:

Properties prop = new Properties();   
    BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8")); 
    prop.load(in); 
    String amount = prop.getProperty("ssl_amount"); 
    String card = prop.getProperty("ssl_card_number"); 
    String approval = prop.getProperty("ssl_approval_code"); 
    String results = prop.getProperty("ssl_result_message"); 
    String time = prop.getProperty("ssl_txn_time"); 
    String errorCode = prop.getProperty("errorCode"); 
    String errorMessage = prop.getProperty("errorMessage"); 
    String errorName = prop.getProperty("errorName");   
    if(errorCode == null){ 
    Receipt pp = new Receipt(); 
    pp.setVisible(true); 
    Receipt.amountLabel.setText(amount); 
    Receipt.cardLabel.setText(card); 
    Receipt.approvalLabel.setText(approval); 
    Receipt.respondLabel.setText(results); 
    Receipt.dateLabel.setText(time); 
    }else{ 
     JOptionPane.showMessageDialog(null,errorName,errorMessage,JOptionPane.ERROR_MESSAGE); 
      } 

+1到Crunchify.com

+1

這個問題是沒有意義的我什麼。 – 2014-12-06 04:06:40

+0

我只需要打印ssl_amount = 12而不是洞響應。 – passw 2014-12-06 04:18:29

+0

使用屬性文件。請參閱:http://crunchify.com/java-properties-file-how-to-read-config-properties-values-in-java/ – 2014-12-06 04:19:57

回答

0

在while循環,檢查看看這條線是從你關心的事情開始的。例如,

while ((line = in.readLine() != null) { 
    if (line.startsWith("ssl_amount") { 
    Receipt.receText.append(line + "\n"); 
    System.out.println(line); 
    } 
} 
0

使用的StringTokenizer打破字符串,檢查字符串的第一部分,當你得到你想要打印出值

params.put("ssl_result_format", "ASCII"); 

BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8")); 
String line; 
Receipt pp = new Receipt(); 
pp.setVisible(true); 
while ((line = in.readLine()) != null) {  
Receipt.receText.append(line + "\n"); 
StringTokenizer strToken = new StringTokenizer(line, "="); 
if(strToken.hasMoreTokens() && strToken.nextToken().equals("ssl_amount")) 
    System.out.println(strToken.nextToken());