Как установить тайм-аут HttpResponse для Android в Java

Основываясь на ваших данных, я понял, что у вас есть представление JS, и вы меняете значок и его цвет в зависимости от состояния

View.js

[ 110]

controller.js

var oModel = new sap.ui.model.json.JSONModel();
oModel.setData({
  'items': [
  {
    'ProductID': "sdf",
    'ProductName': "asdf",
    "Status": "1"
  },
  {
    'ProductID': "ss",
    'ProductName': "asf",
    "Status": "1"
  },
  {
    'ProductID': "fff",
    'ProductName': "asdf",
    "Status": "2"
  },
  {
    'ProductID': "fas",
    'ProductName': "asdf",
    "Status": "1"
  },
  {
    'ProductID': "asdfa",
    'ProductName': "asdfwer",
    "Status": "2"
  }]
});
sap.ui.getCore().setModel(oModel, "tableData");
var oTable = sap.ui.getCore().byId("idPrdList");
var colItems = new sap.m.ColumnListItem("colItems", {
  type: "Active"
});
var txtNAME = new sap.m.Text({
  text: "{tableData>ProductID}"
});
colItems.addCell(txtNAME);
var txtNAME2 = new sap.m.Text({
  text: "{tableData>ProductName}"
});
colItems.addCell(txtNAME2);
var txtNAME3 = new sap.ui.layout.VerticalLayout({
  content: [
    new sap.m.Label({
      text: "{tableData>Status}"
    }),
    new sap.ui.core.Icon({
      src: {
        parts: ["tableData>Status"],
        formatter: assets.util.mFormatter.formatStatusIcon
      },
      size: "1rem",
      color: {
        parts: ["tableData>Status"],
        formatter: assets.util.mFormatter.formatStatusIconColor
      }
    })
  ]
})
colItems.addCell(txtNAME3);
oTable.bindAggregation("items", "tableData>/items", colItems);
oTable.setModel(oModel, "tableData");

Formatter.js

jQuery.sap.declare("assets.util.mFormatter");
assets.util.mFormatter = {
    formatStatusIcon: function(Status) {
        return (Status === "2" ? "ICONPath1" : "ICONPath2");
    },
    formatStatusIconColor: function(Status) {
        return (Status === "2" ? "Color1" : "Color2");
    },
};

Выход [1113 ]

enter image description here

332
задан Cristian 19 June 2010 в 03:13
поделиться

2 ответа

В моем примере установлено два таймаута. Тайм-аут соединения вызывает java.net.SocketTimeoutException: сокет не подключен и тайм-аут сокета java.net.SocketTimeoutException: время ожидания операции истекло .

HttpGet httpGet = new HttpGet(url);
HttpParams httpParameters = new BasicHttpParams();
// Set the timeout in milliseconds until a connection is established.
// The default value is zero, that means the timeout is not used. 
int timeoutConnection = 3000;
HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
// Set the default socket timeout (SO_TIMEOUT) 
// in milliseconds which is the timeout for waiting for data.
int timeoutSocket = 5000;
HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);

DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
HttpResponse response = httpClient.execute(httpGet);

Если вы хотите установить Параметры любого существующего HTTPClient (например, DefaultHttpClient или AndroidHttpClient) можно использовать с помощью функции setParams () .

httpClient.setParams(httpParameters);
624
ответ дан 23 November 2019 в 00:44
поделиться

Если Ваш пользуются http клиентской библиотекой Джакарты затем, можно сделать что-то как:

        HttpClient client = new HttpClient();
        client.getParams().setParameter(HttpClientParams.CONNECTION_MANAGER_TIMEOUT, new Long(5000));
        client.getParams().setParameter(HttpClientParams.SO_TIMEOUT, new Integer(5000));
        GetMethod method = new GetMethod("http://www.yoururl.com");
        method.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, new Integer(5000));
        method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
        int statuscode = client.executeMethod(method);
8
ответ дан Pablo Santa Cruz 23 November 2019 в 00:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: