Я хочу получить файл в сервисе отдыха от Android. В моем коде я посылаю filestream
с Android через url
. Если я использую так, то мое приложение не работает, говоря ...
Logcat
Операция Fileacces
в контракте "IREST" имеет переменную запроса с именем
stream
типа System.IO.FileStream
, но типа
System.IO.FileStream
не конвертируется по QueryStringConverter
.
Переменные для значений запроса UriTemplate должны иметь типы, которые могут
быть преобразован QueryStringConverter
Здесь у меня есть сообщение моего кодирования БЮР
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == FILE_PICKER_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
Uri content_describer = data.getData();
String src = null;
try {
src = getFilePath(UploadActivity.this, content_describer);
} catch (URISyntaxException e) {
e.printStackTrace();
}
Log.d("src is: ", src);
source = new File(src);
fname = source.getName();
Button text = (Button) findViewById(R.id.txt);
text.setText(fname);
text.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
FileOpen.openFile(UploadActivity.this, source);
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
}
Событие Onclick на значке панели действий:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.mybutton) {
new Save().execute();
return true;
}
return super.onOptionsItemSelected(item);
}
СОХРАНИТЬ функцию asynctask
private class Save extends AsyncTask<String,Void,String> {
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... params) {
try {
fis=new FileInputStream(source);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
ServiceHandler jsonParser = new ServiceHandler();
String fileaccess = ip+"Mobile/rest.svc/Fileacces?stream="+fis+"&filename="+fname;
Log.d("Fileaccess","fileaccess"+fileaccess);
String result = jsonParser.makeServiceCall(fileaccess, ServiceHandler.GET);
Log.i("fileaccess", "result: > " + result);
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
System.out.println(s);
}
}
Моя функция отдыха в vb.net
Public Function fileacces(ByVal stream As FileStream, ByVal filename As String) As String Implements IREST.fileacces
Dim result = ""
Try
Dim path = "D:\XXX\YYY\ECM Source\Archive\EZECM\Settings\Monitor\" + filename
Dim fileStream = New FileStream(path, FileMode.Create, FileAccess.Write)
stream.CopyTo(fileStream)
fileStream.Dispose()
result = "file uploaded"
Catch ex As Exception
End Try
Return result
End Function