2016-08-20 13 views
1

私はウェブAPIとアプリケーションを持っています。私は登録アプリにしたいですが、私は問題があります。私は青空を使用しています。 はRetrofit404 not found web api

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(); 
       } 
      }); 
}; 

と私はあなたが私に人を助ける.Can見つからない404を改造取得私のregisterapı(インターフェース)

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

と私のmainactivty.javaページがありますか? http://bsapmusic.azurewebsites.net/api/music/registerはあなたのAPIであなたのregisterメソッドへのURLであると仮定すると、THX

+1

最初の/、@POST( "application/json")を削除して、enpointが存在することを確認してください。http://bsapmusic.azurewebsites.net/api/music/register/application/json – AndroidRuntimeException

+0

これを試してくださいこれは: "retrofit eror" application/json "は"/"で始まる必要があります –

答えて

0

A 404は、このURLにはAPIがないことを意味します。 ベースルールはhttp://bsapmusic.azurewebsites.net/api/music/register です。このベースルールの後に@postの内側のパスが追加されます。これにより、URL:http://bsapmusic.azurewebsites.net/api/music/register/application/jsonになります。 あなたの登録メソッドへのurlはおそらく最初のurlです。 baseurlはapiのルートURLへのURLでなければなりません。あなたの場合、これはおそらく:http://bsapmusic.azurewebsites.net/api/です。 @GET、@POST、@PUTでは、パスを特定のapiメソッドに設定します。あなたの場合は@POST("music/register")になります。 APIに送信されるデータのタイプはここでは設定しません。

+0

ıhttp://bsapmusic.azurewebsites.net/api/music/registerに変更してくださいıhttp://bsapmusic.azurewebsites.net/api/ @POST( "/ music/register")の感謝の男 –