2016-08-20 4 views
1

У меня есть веб-приложение и приложение. Так что я хочу зарегистрироваться, но у меня есть проблема. Я использую лазурь. Существует мой registerapı (интерфейс)Retrofit 404 не найден web api

@FormUrlEncoded 
@POST("/application/json") 
public void insertUser(
     @Field("Username") String Username, 
     @Field("Password") String Password, 
     @Field("Email") String Email, 
     Callback<Response> callback); 

и моя страница mainactivty.java

public class MainActivity extends AppCompatActivity { 

private EditText editTextUsername; 
private EditText editTextPassword; 
private EditText editTextEmail; 
private Button buttonRegister; 
final public static String ROOT_URL = "http://bsapmusic.azurewebsites.net/api/music/register"; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    editTextUsername = (EditText) findViewById(R.id.etusername); 
    editTextPassword = (EditText) findViewById(R.id.etpassword); 
    editTextEmail = (EditText) findViewById(R.id.etmail); 
    buttonRegister = (Button) findViewById(R.id.btnkayit); 
    buttonRegister.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      insertUser(); 
     } 
    }); 


} 
private void insertUser() 
{ 
    RestAdapter adapter =new RestAdapter.Builder().setEndpoint(ROOT_URL).build(); 
    RegisterAPI api = adapter.create(RegisterAPI.class); 
    api.insertUser(
      editTextUsername.getText().toString(), 
      editTextPassword.getText().toString(), 
      editTextEmail.getText().toString(), 
      new Callback<Response>() { 
       @Override 
       public void success(Response result, Response response) { 
        BufferedReader reader = null; 
        String output = ""; 
        try{ 
         reader=new BufferedReader(new InputStreamReader(result.getBody().in())); 
         output=reader.readLine(); 
        } 
        catch (IOException e){ 
         e.printStackTrace(); 
        } 
        Toast.makeText(MainActivity.this,output,Toast.LENGTH_LONG).show(); 
       } 

       @Override 
       public void failure(RetrofitError error) { 
        Toast.makeText(MainActivity.this, error.toString(),Toast.LENGTH_LONG).show(); 
       } 
      }); 
}; 

и я получаю дооснастить 404 не нашли .Can вы помочь мне, ребята? Thx

+1

Удалите первый /, @POST («приложение/json») и убедитесь, что существует точка enpoint. Http://bsapmusic.azurewebsites.net/api/music/register/application/json – AndroidRuntimeException

+0

ı попробуйте это, так что ı get eror это:> retrofit eror "application/json" должно начинаться с "/" –

ответ

0

Предполагая, что http://bsapmusic.azurewebsites.net/api/music/register является URL для вашего регистрового метода в вашем API:

404 означает, что нет API для этого URL. Ваш baseurl равен http://bsapmusic.azurewebsites.net/api/music/register После этого baseurl добавляется путь внутри @post. Это приведет к URL-адресу: http://bsapmusic.azurewebsites.net/api/music/register/application/json. URL-адрес вашего регистра-метода, вероятно, является первым URL-адресом. Baseurl должен указать URL-адрес корня вашего api, в вашем случае это, вероятно, есть: http://bsapmusic.azurewebsites.net/api/. В @GET, @POST, @PUT вы устанавливаете путь к определенному методу api. В вашем случае это будет @POST("music/register"). Вы не устанавливаете тип данных, отправленных в API здесь.

+0

ı изменить на http://bsapmusic.azurewebsites.net/api/music/register, так что ı do http://bsapmusic.azurewebsites.net/api/ и ı do @POST ("/ music/register") спасибо человеку –