Retrofit-IllegalArgumentException: url inesperada
Quiero subir un archivo de video (elegido de la galería) a un servidor usando Retrofit. Pero no funciona y lanza la excepción " java.lang.IllegalArgumentException: url inesperado: 192.168.1.7 ". Mi código se presenta a continuación.
PostFile.java
:
public final class PostFile { public static final MediaType MEDIA_TYPE_MARKDOWN = MediaType.parse("vide/mp4"); private final OkHttpClient client = new OkHttpClient(); public void run(String path) throws Exception { File file = new File(path); Request request = new Request.Builder() .url("192.168.1.7/") .post(RequestBody.create(MEDIA_TYPE_MARKDOWN, file)) .build(); Response response = client.newCall(request).execute(); if (!response.isSuccessful()) throw new IOException("Unexpected code " + response); System.out.println(response.body().string()); } }
PostFile
:
- Llamar a un método no estático fuera de la clase
- Java - ignorar certificado SSL expirado
- Forma de recortar la imagen cuadrada de Android en la aplicación
- ¿El método IOAcknowledge no funciona para SocketIO en Android?
- Obtener la posición de un elemento dentro de un ListView?
public class MainActivity extends Activity { private static int RESULT_LOAD_IMG = 1; String decodableString; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void loadImagefromGallery(View view) { // Create intent to Open Image applications like Gallery, Google Photos Intent galleryIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI); // Start the Intent startActivityForResult(galleryIntent, RESULT_LOAD_IMG); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); try { // When an Image is picked if (requestCode == RESULT_LOAD_IMG && resultCode == RESULT_OK && null != data) { // Get the Image from data Uri selectedVideo = data.getData(); String[] filePathColumn = { MediaStore.Video.Media.DATA }; // Get the cursor Cursor cursor = getContentResolver().query(selectedVideo, filePathColumn, null, null, null); // Move to first row cursor.moveToFirst(); int columnIndex = cursor.getColumnIndex(filePathColumn[0]); decodableString = cursor.getString(columnIndex); cursor.close(); new PostFile().run(decodableString); Log.i("mohsen","done"); } else { Toast.makeText(this, "You haven't picked any video", Toast.LENGTH_LONG).show(); } } catch (Exception e) { e.printStackTrace(); Toast.makeText(this, "Something went wrong", Toast.LENGTH_LONG) .show(); } } }
Wampserver está ejecutando Apache Server 2.4.4 en mi computadora. Tenga en cuenta que no tengo ni idea de si este código es sonido o no, y sólo estoy tratando de hacer que funcione casi a ciegas.
- Inicie el visor de intenciones para mostrar la imagen desde url
- Libgdx se bloquea en Android
- Cuenta de ejecución de las aplicaciones instaladas
- No se puede ordenar la lista por orden ascendente
- Error: Código demasiado grande
- Androide lectura entrada de usuario en un servicio
- Las etiquetas NFC pueden ser leídas por lector RFID?
- ¿Quién está agregando "\ n" en la imagen codificada en Base64 cuando la escribo en un archivo? Java
Prueba el cambio
.url("192.168.1.7/")
a
.url("http://192.168.1.7")
Modifique su url a http://192.168.1.7 . Debe funcionar perfectamente.