从NSURL中删除端口

时间:2015-06-02 19:41:30

标签: objective-c cocoa nsurl

如何规范NSURL,特别是移除端口? http://en.wikipedia.org/wiki/URL_normalization

2 个答案:

答案 0 :(得分:2)

您可以编写代码来执行规范化。 NSURL可能会为您做一些事情,但我认为没有记录这样做。

删除端口号不一定适用于规范化,但您可以这样做。

在这两种情况下,NSURLComponents都可以通过解构网址并让您轻松地与每个组件部分进行交互,根据需要删除或修改它来帮助您。

答案 1 :(得分:1)

正如Wain的回答所述,public class MainActivity extends AppCompatActivity{ Button start, stop; public MediaRecorder recorder = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); start = (Button) findViewById(R.id.start_button); stop = (Button) findViewById(R.id.stop_button); start.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { switch (v.getId()) { case R.id.start_button: startRecord();break; case R.id.stop_button: stopRecord(); break; } } } ); } public void startRecord() { recorder = new MediaRecorder(); recorder.reset(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.setOutputFile(getFilePath()); try { recorder.prepare(); recorder.start(); } catch (Exception e) { e.printStackTrace(); } } public void stopRecord() { if(recorder!=null) { System.out.println("Stop Pressed"); recorder.stop(); recorder.reset(); recorder.release(); recorder = null; } } private String getFilePath() { String filepath = Environment.getExternalStorageDirectory().getPath(); File file = new File(filepath, "Audio Capture"); if (!file.exists()) file.mkdirs(); filepath=file.getAbsolutePath()+"/Record.mp4"; System.out.println(filepath); return (filepath); } } 允许您解构URL并使用您规范化的组件重新构建新URL。但是,URL规范化是特定于方案的(即规范化http URL与规范化文件URL非常不同),因此您必须知道正在使用的URL方案的语法。