我有二进制流,我希望它以字节为单位进行转换。之后我想把它下载到SD卡中。
我的网络服务:
POST /**********Mobile/**********.asmx HTTP/1.1
Host: ***.***.*.*
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/GetDocument"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetDocument xmlns="http://tempuri.org/">
<DocumentID>string</DocumentID>
</GetDocument>
</soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetDocumentResponse xmlns="http://tempuri.org/">
<GetDocumentResult>string</GetDocumentResult>
</GetDocumentResponse>
</soap:Body>
</soap:Envelope>
我正在尝试的是
SoapObject DocumentRequest = new SoapObject(NAMESPACE, GET_DOCUMENT_METHOD);
DocumentRequest.addProperty("DocumentID", ID);
Log.i("DocumentID", ID);
SoapSerializationEnvelope Envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
Envelope.dotNet = true;
Envelope.setOutputSoapObject(DocumentRequest);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.debug = true;
androidHttpTransport.call(SOAP_ACTION_GETDOCUMENT, Envelope);
SoapPrimitive DocumentResponse = (SoapPrimitive)Envelope.getResponse();
Log.i("DocumentResponse", DocumentResponse.toString());
String DocAsString = DocumentResponse.toString();
byte[] decodedString = DocAsString.getBytes();
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
ImageView DisplayDoc= (ImageView)findViewById(R.id.displayimage);
DisplayDoc.setImageBitmap(decodedByte);
}
我得到的二进制流字符串是正确的,还是我需要使用base64binary。如果是这样的话,请让我知道下载image/.pdf/word-doc的正确方法。我已经完成了不同的搜索,但没有完全使用。感谢
编辑:
SoapPrimitive DocumentResponse = (SoapPrimitive)Envelope.getResponse();
Log.i("DocumentResponse", DocumentResponse.toString());
String DocAsString = DocumentResponse.toString();
byte[] decodedString = Base64.decode(DocAsString, Base64.DEFAULT);
/*Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
ImageView DisplayDoc= (ImageView)findViewById(R.id.displayimage);
DisplayDoc.setImageBitmap(decodedByte);*/
File direct = new File(Environment.getExternalStorageDirectory() + "/Downloads");
if(!direct.exists()) {
direct.mkdir(); }
File photo=new File(Environment.getExternalStorageDirectory() + "/Downloads", ID);
if (photo.exists()) {
photo.delete(); }
try {
FileOutputStream fos=new FileOutputStream(photo.getPath());
fos.write(decodedString);
fos.close();
ContentValues values= new ContentValues();
System.out.println(values);
}
catch (java.io.IOException e)
{
Log.e("PictureDemo", "Exception in photoCallback", e);
}
}
catch(Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), " Network Exception : " + e
+ "Please check network connectivity.", Toast.LENGTH_LONG).show();
}
}
已编辑,Web服务响应
03-19 10:58:57.797: D/dalvikvm(789): GC_FOR_ALLOC freed 57K, 4% free 6912K/7171K, paused 53ms
03-19 10:58:57.807: I/dalvikvm-heap(789): Grow heap (frag case) to 7.313MB for 488976-byte allocation
03-19 10:58:57.957: D/dalvikvm(789): GC_CONCURRENT freed 1K, 4% free 7388K/7687K, paused 4ms+14ms
03-19 10:58:58.357: D/gralloc_goldfish(789): Emulator without GPU emulation detected.
03-19 10:58:58.497: W/TextLayoutCache(789): computeValuesWithHarfbuzz -- need to force to single run
03-19 10:59:02.327: D/InputEventConsistencyVerifier(789): KeyEvent: ACTION_UP but key was not down.
03-19 10:59:02.327: D/InputEventConsistencyVerifier(789): in android.widget.EditText@41054cd8
03-19 10:59:02.327: D/InputEventConsistencyVerifier(789): 0: sent at 2335155000000, KeyEvent { action=ACTION_UP, keyCode=KEYCODE_TAB, scanCode=15, metaState=0, flags=0x8, repeatCount=0, eventTime=2335155, downTime=2335119, deviceId=0, source=0x101 }
03-19 10:59:04.488: I/LoginDetail(789): Username jarnail@sassypuma.comPassword admin
03-19 10:59:04.537: D/dalvikvm(789): GC_FOR_ALLOC freed 71K, 3% free 7634K/7815K, paused 40ms
03-19 10:59:04.937: I/myLogin(789): 1
03-19 10:59:05.357: D/dalvikvm(789): GC_CONCURRENT freed 360K, 7% free 7698K/8199K, paused 7ms+23ms
03-19 10:59:05.547: I/AllFolders(789): anyType{TreeData=anyType{ID=13002; FolderName=My Drive; ParentID=0; CreatedBy=1; }; TreeData=anyType{ID=13006; FolderName=Testing1; ParentID=0; CreatedBy=1; }; TreeData=anyType{ID=13007; FolderName=Testing123; ParentID=0; CreatedBy=1; }; }
03-19 10:59:05.547: I/System.out(789): 3
03-19 10:59:06.057: D/dalvikvm(789): GC_CONCURRENT freed 362K, 7% free 7761K/8263K, paused 31ms+7ms
03-19 10:59:06.217: W/TextLayoutCache(789): computeValuesWithHarfbuzz -- need to force to single run
03-19 10:59:06.627: W/IInputConnectionWrapper(789): finishComposingText on inactive InputConnection
03-19 10:59:08.307: I/FolderID(789): 13002
03-19 10:59:08.307: I/User_ID(789): 1
03-19 10:59:08.367: D/dalvikvm(789): GC_FOR_ALLOC freed 16K, 5% free 7874K/8263K, paused 45ms
03-19 10:59:08.377: I/dalvikvm-heap(789): Grow heap (frag case) to 8.036MB for 262160-byte allocation
03-19 10:59:08.417: D/dalvikvm(789): GC_FOR_ALLOC freed 3K, 6% free 8127K/8583K, paused 44ms
03-19 10:59:08.917: I/SubFolders(789): anyType{FileFolderDetails=anyType{ID=13003; Name=Doc file; URL=anyType{}; SubjectType=Folder; }; FileFolderDetails=anyType{ID=13004; Name=My Pics; URL=anyType{}; SubjectType=Folder; }; FileFolderDetails=anyType{ID=13005; Name=Testing; URL=anyType{}; SubjectType=Folder; }; FileFolderDetails=anyType{ID=13075; Name=satnam; URL=anyType{}; SubjectType=Folder; }; FileFolderDetails=anyType{ID=13080; Name=Saini; URL=anyType{}; SubjectType=Folder; }; FileFolderDetails=anyType{ID=13084; Name=Jelly; URL=anyType{}; SubjectType=Folder; }; FileFolderDetails=anyType{ID=13092; Name=pushie; URL=anyType{}; SubjectType=Folder; }; FileFolderDetails=anyType{ID=13096; Name=Jarnail_Testing; URL=anyType{}; SubjectType=Folder; }; FileFolderDetails=anyType{ID=13099; Name=amarjeet; URL=anyType{}; SubjectType=Folder; }; FileFolderDetails=anyType{ID=13101; Name=Kaam; URL=anyType{}; SubjectType=Folder; }; FileFolderDetails=anyType{ID=13103; Name=tajmehal; URL=anyType{}; SubjectType=Folder; }; FileFolderDetails=anyType{ID=13105; Name=TextArea; URL=anyType{}; SubjectType=Folder; }; FileFolderDetails=anyType{ID=13107; Name=TextArea1; URL=anyType{}; SubjectType=Folder; }; FileFolderDetails=anyType{ID=13109; Name=TextArea2; URL=anyType{}; SubjectType=Folder; }; FileFolderDetails=anyType{ID=13115; Name=TextArea3; URL=anyType{}; SubjectType=Folder; }; FileFolderDetails=anyType{ID=13121; Name=TextArea5; URL=anyType{}; SubjectType=Folder; }; FileFolderDetails=anyType{ID=13124; Name=Check Char; URL=anyType{}; SubjectType=Folder; }; FileFolderDetails=anyType{ID=13128; Name=amitestinggggg; URL=anyType{}; SubjectType=Folder; }; FileFolderDetails=anyType{ID=13132; Name=kkk; URL=anyType{}; SubjectType=Folder; }; FileFolderDetails=anyType{ID=13136; Name=hhhhhhhhhhhhhhhhhh; URL=anyType{}; SubjectType=Folder; }; FileFolderDetails=anyType{ID=13140; Name=ravitevffvvgfdcvgbgvf; URL=anyType{}; SubjectType=Folder; }; FileFolderDetails=anyType{ID=13144; Name=DMS3.0_Title_Page; URL=anyType{}; SubjectType=Folder; }; FileFolderDetails=anyType{ID=20; Name=office.jpg; URL=InterLogicsMobile/image/Tulips.jpg; SubjectType=File; }; FileFolderDetails=anyType{ID=21; Name=Capture.PNG; URL=InterLogicsMobile/image/Tulips.jpg; SubjectType=File; }; FileFolderDetails=anyType{ID=22; Name=groups.jpg; URL=InterLogicsMobile/image/Tulips.jpg; SubjectType=File; }; FileFolderDetails=anyType{ID=23; Name=Capture1.PNG; URL=InterLogicsMobile/image/Tulips.jpg; SubjectType=File; }; FileFolderDetails=anyType{ID=99; Name=Content4Work.pdf; URL=InterLogicsMobile/image/Tulips.jpg; SubjectType=File; }; FileFolderDetails=anyType{ID=109; Name=Rohit.docx; URL=InterLogicsMobile/image/Tulips.jpg; SubjectType=File; }; FileFolderDetails=anyType{ID=115; Name=Chrysanthemum.jpg; URL=InterLogicsMobile/image/Tulips.jpg; SubjectType=File; }; FileFolderDetails=anyType{ID=123; Name=DMS_Drag_and_Drop(2).doc; URL=InterLogicsMobile/image/Tulips.jpg; SubjectType=File; }; FileFolderDetails=anyType{ID=124; Name=Tulips.jpg; URL=InterLogicsMobile/image/Tulips.jpg; SubjectType=File; }; FileFolderDetails=anyType{ID=125; Name=Jellyfish.jpg; URL=InterLogicsMobile/image/Tulips.jpg; SubjectType=File; }; FileFolderDetails=anyType{ID=126; Name=Koala.jpg; URL=InterLogicsMobile/image/Tulips.jpg; SubjectType=File; }; FileFolderDetails=anyType{ID=127; Name=Lighthouse.jpg; URL=InterLogicsMobile/image/Tulips.jpg; SubjectType=File; }; FileFolderDetails=anyType{ID=128; Name=Jellyfish.jpg; URL=InterLogicsMobile/image/Tulips.jpg; SubjectType=File; }; FileFolderDetails=anyType{ID=129; Name=Jellyfish.jpg; URL=InterLogicsMobile/image/Tulips.jpg; SubjectType=File; }; FileFolderDetails=anyType{ID=130; Name=Jellyfish.jpg; URL=InterLogicsMobile/image/Tulips.jpg; SubjectType=File; }; FileFolderDetails=anyType{ID=131; Name=Jellyfish.jpg; URL=http
03-19 10:59:08.917: I/System.out(789): 41
03-19 10:59:09.527: D/dalvikvm(789): GC_CONCURRENT freed 571K, 9% free 8012K/8711K, paused 23ms+26ms
03-19 10:59:12.787: D/dalvikvm(789): GC_FOR_ALLOC freed 11K, 5% free 8352K/8711K, paused 49ms
03-19 10:59:12.857: D/dalvikvm(789): GC_FOR_ALLOC freed 1K, 3% free 8712K/8967K, paused 50ms
03-19 10:59:12.937: D/dalvikvm(789): GC_FOR_ALLOC freed <1K, 4% free 9163K/9479K, paused 48ms
03-19 10:59:15.427: I/System.out(789): 13003
03-19 10:59:15.427: I/DocumentID(789): 13003
03-19 10:59:15.837: D/dalvikvm(789): GC_CONCURRENT freed 328K, 5% free 9581K/10055K, paused 23ms+5ms
03-19 10:59:15.867: I/DocumentResponse(789): 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
try {
ht.call(SOAP_ACTION, envelope);
final SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
String str =DocumentResponse.toString();
byte[] decodedString = Base64.decode(str, Base64.DEFAULT);
File direct = new File(Environment.getExternalStorageDirectory() + "/Foldername");
if(!direct.exists())
{
direct.mkdir();
}
File photo=new File(Environment.getExternalStorageDirectory() + "/Foldername",Filename);
if (photo.exists())
{
photo.delete();
}
try {
FileOutputStream fos=new FileOutputStream(photo.getPath());
fos.write(decodedString);
fos.close();
ContentValues values= new ContentValues();
}
catch (java.io.IOException e)
{
Log.e("PictureDemo", "Exception in photoCallback", e);
}
}
catch (Exception e) {
e.printStackTrace();
}
将字符串转换为Base64解码。
示例:byte[]decodedString=Base64.decode(str,Base64.DEFAULT(;
使用该字节将文件保存在SDCard中。
示例:fos.write(decodedString(;