首先,讓我開始說我已經完全沒有使用OData4j。使用基本身份驗證的OData4j查詢
我正在構建一個需要從Web服務中消耗一些OData的Android應用程序(使用Eclipse),我們有一個iPad應用程序已經可以正常工作,所以我認爲這對Web服務是安全的。
所有的Web請求都需要基本身份驗證才能工作,並且我可以使用瀏覽器進行調用以確認我使用的URL和憑證是否有效。
到目前爲止,我有這樣的代碼:
ODataConsumer.Builder builder = ODataConsumers.newBuilder(url);
builder.setClientBehaviors(new BasicAuthenticationBehavior(LoginUsername, LoginPassword));
ODataConsumer c = builder.build();
for(OEntity entity : c.getEntities("entry").execute()){
System.out.println(entity.getProperty("name").getValue().toString());
}
目前,Eclipse調試器上for
線出現故障,.execute()
通話過程中推測。調試器對我來說沒有任何幫助,唯一在LogCat中看起來與半相關的行是:
編輯:在@ JohnSpurlock的回答後,我進一步了一點。總體上同樣的問題,但一個新的錯誤信息:
BadRequestException:請求URI無效。由於 段的「文檔」是指集合,因此這必須是請求URL中最後一個請求的 。所有中間段必須指代一個單一的 資源。
還有其他的消息,但主要是做穿線 - 值得注意的是,這種方法正在從AsyncTask中調用,但它似乎共同具有的線程錯誤,當AsyncTask
內的任何中斷。
我的XML結果的審查和縮短版(通過瀏覽器)是這樣的:
<feed xml:base="http://a.example.com/OData.svc/"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns="http://www.w3.org/2005/Atom">
<entry>
<name>one</name>
</entry>
<entry>
<name>two</name>
</entry>
</feed>
這無疑讓我更進一步謝謝你,我還是原來的問題,所以我不能接受,但你得到一票。我之前(稍後)已經完成了幾個小型Android應用程序,但都沒有使用互聯網接入。 – musefan 2013-04-05 10:55:53